ShardingSphere简介
# 介绍
Apache ShardingSphere (opens new window) 是一套开源的分布式数据库解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款既能够独立部署,又支持混合部署配合使用的产品组成。 它们均提供标准化的数据水平扩展、分布式事务和分布式治理等功能,可适用于如 Java 同构、异构语言、云原生等各种多样化的应用场景。
相关文档入口:
- 目前新官方文档 (opens new window)都有中文版本阅读起来比较容易,而旧的文档(v4.x之前)基本都是英文文档。
- 版本选择,建议生产选v4.1.1,对应的官方文档 (opens new window),这里大多数文章基于官方文档翻译而来。
DistSQL(Distributed SQL)是 Apache ShardingSphere 特有的操作语言。 它与标准 SQL 的使用方式完全一致,用于提供增量功能的 SQL 级别操作能力,只能用于 ShardingSphere-Proxy。
# 产品线
ShardingSphere,一个连接 & 增量 & 可插拔的关系型数据库中间件,旨在充分合理地在分布式的场景下利用关系型数据库的计算和存储能力,而并非实现一个全新的关系型数据库。
- Sharding-JDBC:被定位为轻量级Java框架,在Java的JDBC层提供的额外服务,以jar包形式使用。可理解为增强版的 JDBC 驱动,完全兼容 JDBC 和各种 ORM 框架。
- Sharding-Proxy:被定位为透明化的数据库代理端,提供封装了数据库二进制协议的服务端版本,用于完成对异构语言的支持。
- Sharding-Sidecar:定位为 Kubernetes 的云原生数据库代理,以 Sidecar 的形式代理所有对数据库的访问。 通过无中心、零侵入的方案提供与数据库交互的啮合层,即 Database Mesh,又可称数据库网格。
官方称混合使用 ShardingSphere-JDBC 和 ShardingSphere-Proxy,这种混合架构应用可以调整适合于当前业务的最佳系统架构。
产品线对比:
ShardingSphere-JDBC | ShardingSphere-Proxy | ShardingSphere-Sidecar | |
---|---|---|---|
数据库 | 任意 | MySQL/PostgreSQL | MySQL/PostgreSQL |
连接消耗数 | 高 | 低 | 高 |
异构语言 | 仅 Java | 任意 | 任意 |
性能 | 损耗低 | 损耗略高 | 损耗低 |
无中心化 | 是 | 否 | 是 |
静态入口 | 无 | 有 | 无 |
# 解决方案/功能:
以下是v5.1版本时提供的解决方案以及功能
解决方案/功能 | 分布式数据库 | 数据安全 | 数据库网关 | 全链路压测 |
---|---|---|---|---|
数据分片 | 数据加密 | 异构数据库支持 | 影子库 | |
读写分离 | 行级权限(TODO) | SQL 方言转换(TODO) | 可观测性 | |
分布式事务 | SQL 审计(TODO) | |||
弹性伸缩 | SQL 防火墙(TODO) | |||
高可用 |
# 项目状态以及规划
# 下载
上次更新: 5/30/2023, 11:42:20 PM