| 上传 | 格式 | 评分 |
|---|---|---|
copilot | .pdf | 3 |
| 摘要 | ||
ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,包括Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar三款产品。Sharding-JDBC是一款轻量级Java框架,支持数据分片、读写分离和分布式主键,适用于Java开发的高性能OLTP应用。Sharding-Proxy则提供异构语言支持和静态入口,适用于OLAP应用和数据库运维。混合架构通过结合Sharding-JDBC和Sharding-Proxy,搭建适用于多样化场景的应用系统,支持同一注册中心统一配置分片策略。其功能涵盖数据分片、分布式事务和数据库治理,核心流程包括SQL解析、执行器优化、SQL路由、改写、执行和结果归并。 | ||
| AI总结 | ||
# 《Sharding-JDBC概述》总结
## 1. ShardingSphere概述
ShardingSphere是一款开源的分布式数据库中间件解决方案生态圈,包含以下三个独立组件:
- **Sharding-JDBC**:轻量级Java框架,提供数据分片、分布式事务和数据库治理功能。
- **Sharding-Proxy**:数据库代理端,支持异构语言,适用于OLAP场景。
- **Sharding-Sidecar**:Kubernetes原生解决方案,适用于云原生环境(目前规划中)。
### 1.1 ShardingSphere特点
- 提供标准化的数据分片、分布式事务和数据库治理功能。
- 适用于Java同构、异构语言、容器和云原生等多样化场景。
- 当前版本:3.0,官网地址:https://shardingsphere.apache.org/index_zh.html。
## 2. Sharding-JDBC
### 2.1 定位与特点
- 轻量级Java框架,在JDBC层提供额外服务。
- 客户端直连数据库,以jar包形式提供服务,无需额外部署。
- 兼容JDBC和各种ORM框架(如JPA、Hibernate、MyBatis等)。
- 支持任意实现JDBC规范的数据库,包括MySQL、Oracle、SQLServer和PostgreSQL。
### 2.2 架构优势
- 无中心化架构。
- 高性能,适用于OLTP应用。
- 向应用程序完全透明,可直接当作MySQL使用。
## 3. Sharding-Proxy
### 3.1 定位与特点
- 透明化的数据库代理端,封装了数据库二进制协议。
- 支持任何兼容MySQL协议的客户端(如MySQL Command Client、MySQL Workbench)。
- 向应用程序完全透明,可直接当作MySQL使用。
### 3.2 架构特点
- 提供静态入口。
- 支持异构语言,适用于OLAP应用和分片数据库的管理与运维。
## 4. Sharding-Sidecar
- Kubernetes原生解决方案,适用于云原生环境。
- 目前仍处于规划阶段。
## 5. 组件对比
| 特性 | Sharding-JDBC | Sharding-Proxy | Sharding-Sidecar |
|---------------------|-------------------|--------------------|--------------------|
| 数据库支持 | 任意数据库 | MySQL | MySQL |
| 连接消耗数 | 高 | 低 | 高 |
| 异构语言支持 | 仅Java | 任意语言 | 任意语言 |
| 性能 | 损耗低 | 损耗略高 | 损耗低 |
| 无中心化 | 是 | 否 | 是 |
| 静态入口 | 无 | 有 | 无 |
## 6. 混合架构
ShardingSphere支持混合架构,通过Sharding-JDBC和Sharding-Proxy的结合,并采用同一注册中心统一配置分片策略,可以灵活搭建适用于各种场景的应用系统。Sharding-JDBC适用于高性能OLTP应用,而Sharding-Proxy适用于OLAP和数据库管理场景。
## 7. 功能列表
### 7.1 数据分片
- 分库与分表
- 读写分离
- 分布式主键
### 7.2 分布式事务
- XA强一致事务
- 柔性事务
### 7.3 数据库治理
- 配置动态化
- 熔断与禁用
- 调用链路追踪
- 弹性伸缩(规划中)
## 8. 数据分片工作原理
ShardingSphere的数据分片流程包括以下步骤:
1. **SQL解析**:分词法和语法解析,提取解析上下文。
2. **执行器优化**:合并和优化分片条件。
3. **SQL路由**:根据分片策略生成路由路径(支持分片路由和广播路由)。
4. **SQL改写**:改写为真实数据库可执行的语句(正确性改写和优化改写)。
5. **SQL执行**:通过多线程执行器异步执行。
6. **结果归并**:将多个结果集归并,通过统一JDBC接口输出。
## 9. 规划线路图
- **Apache Release**:4.0.X
- **JDBC + 数据分片**:1.X
- **数据库治理**:2.X
- **Proxy**:3.0.X
- **分布式事务**:3.1.X
- **Sidecar**:4.1.X
- **弹性伸缩**:4.2.X
图例:
- 已完成
- 进行中
- 规划中 | ||
P1
P2
P3
P4
P5
P6
下载文档到本地,方便使用
文档评分














01 Sharding JDBC概览