pdf文档 01 Sharding JDBC概览

781.70 KB 6 页 0 评论
上传 格式 评分
copilot
.pdf
3
摘要
ShardingSphere是由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar组成的开源分布式数据库中间件生态圈,支持数据分片、分布式事务和数据库治理。Sharding-JDBC是一款轻量级Java框架,适用于高性能OLTP应用;Sharding-Proxy则提供静态入口和异构语言支持,适用于OLAP和运维场景。混合架构通过统一配置分片策略,灵活搭建适用各种场景的系统。ShardingSphere的功能包括分库分表、读写分离、分布式主键、XA强一致事务等,其数据分片流程涵盖SQL解析、执行器优化、路由、改写、执行和结果归并。
AI总结
# 《Sharding-JDBC概览》总结 ## 1. ShardingSphere 生态圈 - **构成**:ShardingSphere 是 Apache 开源的分布式数据库中间件生态圈,由 Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar(计划中)三款独立产品组成。 - **功能**:提供数据分片、分布式事务和数据库治理功能,适用于 Java 同构、异构语言、容器、云原生等场景。 - **官网地址**:https://shardingsphere.apache.org/index_zh.html ## 2. Sharding-JDBC overview - **定位**:轻量级 Java 框架,提供增强版的 JDBC 驱动,无需额外部署。 - **特点**: - 支持所有基于 Java 的 ORM 框架(如 JPA、Hibernate、MyBatis)。 - 支持第三方数据库连接池(如 DBCP、Druid)。 - 支持 MySQL、Oracle、SQLServer 和 PostgreSQL 数据库。 - **架构**:无中心化设计,适用于高性能 OLTP 场景。 ## 3. Sharding-Proxy overview - **定位**:透明化的数据库代理端,支持 MySQL 协议。 - **特点**: - 适用于 OLAP 应用和异构语言支持。 - 向应用程序完全透明,可以直接当做 MySQL 使用。 - 提供静态入口,便于管理和运维。 ## 4. ShardingSphere hybrid architecture - **优势**: - Sharding-JDBC 适用于高性能 OLTP。 - Sharding-Proxy 适用于 OLAP 和分片数据库管理。 - **灵活性**:通过混合使用 Sharding-JDBC 和 Sharding-Proxy,并采用统一注册中心配置分片策略,可搭建适用于各种场景的应用系统。 ## 5. 功能列表 - **核心功能**: - 数据分片(分库、分表) - 读写分离 - 分布式主键 - 分布式事务(XA 强一致事务、柔性事务) - **数据库治理**: - 配置动态化 - 熔断与禁用 - 调用链路追踪 - 弹性伸缩(规划中) ## 6. 数据分片工作原理 - **流程**:SQL 解析 -> 执行器优化 -> SQL 路由 -> SQL 改写 -> SQL 执行 -> 结果归并。 - **关键步骤**: - **SQL 解析**:词法解析和语法解析提取解析上下文。 - **执行器优化**:优化分片条件。 - **SQL 路由**:匹配分片策略生成路由路径。 - **SQL 改写**:改写为可执行语句。 - **结果归并**:支持流式、内存归并等方式。 ## 7. 架构对比 - | 组件 | 数据库 | 连接消耗数 | 异构语言 | 性能 | 无中心化 | 静态入口 | ---|---|---|---|---|---|---|--- Sharding-JDBC | 任意数据库 | 高 | 仅 Java | 低 | 是 | 无 | Sharding-Proxy | 任意数据库 | 低 | 任意语言 | 高 | 否 | 有 | ShardingSphere 为开发者提供了灵活、高效的分布式数据解决方案,适用于多种应用场景。
P1
P2
P3
P4
P5
P6
下载文档到本地,方便使用
文档评分
请文明评论,理性发言.