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
下载文档到本地,方便使用
文档评分