搜索

pdf文档 01 Sharding JDBC概览

781.70 KB 6 页 2 下载 113 浏览 0 评论 0 收藏
上传 格式 评分
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
下载文档到本地,方便使用
文档评分
请文明评论,理性发言.