apache /shardingsphere

Empowering Data Intelligence with Distributed SQL for Sharding, Scalability, and Security Across All Databases.

★ 20,825⑂ 6,905
JavaCreated 2016-01-18
20,825
stars
+8+8+22
6,905
forks
–
watchers
–
prs
–
issues
–
releases
–
discussions

README

Apache ShardingSphere - 企业级分布式数据库生态系统

构建异构数据库上层的标准与生态,赋能企业数据架构数字化转型

官方网站: https://shardingsphere.apache.org/


















    
        
            
                
                    
                    
                
            
        
        
            
                
                    
                    
                
            
        
        
            
                
                    
                    
                
            
        
    


 概述



Apache ShardingSphere 定位为 Database Plus,是构建在异构数据库上层的标准与生态系统。作为数据库上层的操作系统,ShardingSphere 并非创造全新的数据库,而是专注于最大化现有数据库的计算能力,提供统一的数据访问入口和增强计算能力。

Database Plus 核心理念:通过在数据库上层构建标准化、可扩展的增强层,让异构数据库像单一数据库一样简单使用,为企业数据架构提供统一的治理能力和分布式计算能力。

连接、增强、可插拔 是 Apache ShardingSphere 的三大核心支柱:

- 连接: 构建数据库上层标准,通过灵活适配数据库协议、SQL 方言和存储格式,快速连接应用与多模式异构数据库,提供统一的数据访问体验;

- 增强: 作为数据库计算增强引擎,透明化提供分布式计算(数据分片、读写分离、联邦查询)、数据安全(加密、脱敏、审计)、流量控制(熔断、限流)以及可观测性(监控、追踪、分析)等企业级能力;

- 可插拔: 采用微内核 + 三层可插拔架构,实现内核、功能组件与生态对接的完全解耦,开发者可以像搭建积木一样,灵活定制符合企业需求的独特数据架构解决方案。

差异化优势:
- vs 分布式数据库:更轻量级、保护现有投资、避免厂商锁定
- vs 传统中间件:功能更丰富、生态更完善、架构更灵活
- vs 云厂商方案:支持多云部署、避免技术绑定、自主可控

ShardingSphere 于 2020 年 4 月 16 日成为 Apache 软件基金会 顶级项目,已在全球范围内被 19,000+ 项目采用。

 双接入端架构设计



ShardingSphere 采用独特的双接入端架构设计,提供 JDBC 和 Proxy 两种既可独立部署又可混合部署的接入端,满足不同场景下的多样化需求。

 ShardingSphere-JDBC:轻量级接入端

定位:轻量级 Java 框架,增强版 JDBC 驱动

核心特性:
- 客户端直连:与应用程序共享资源,无中心化架构
- 高性能低损耗:直接数据库连接,性能损耗最小
- 完全兼容:兼容所有 ORM 框架(MyBatis、JPA、Hibernate 等)
- 零额外部署:以 JAR 包形式提供,无需独立部署和依赖

适用场景:Java 高性能应用,与业务应用集成部署,追求极致性能

 ShardingSphere-Proxy:企业级接入端

定位:透明化数据库代理,独立部署的服务端

核心特性:
- 静态入口:独立于应用程序部署,提供稳定的数据库访问入口
- 异构语言支持:支持任意兼容 MySQL/PostgreSQL 协议的客户端
- DBA 友好:数据库运维管理界面,便于运维人员操作
- 企业级特性:支持集群部署、负载均衡、故障转移

适用场景:异构语言环境、数据库运维管理、需要统一访问入口的企业级应用

 混合架构优势

通过混合使用 ShardingSphere-JDBC 和 ShardingSphere-Proxy,并采用同一注册中心统一配置分片策略,能够灵活搭建适用于各种场景的应用系统:

- 架构灵活性:架构师可自由调整最佳系统架构
- 场景适配性:根据不同业务场景选择最适合的接入方式
- 统一管理:单一配置,多端协同,简化运维复杂度
- 渐进式演进:支持从 JDBC 到 Proxy 的平滑演进路径

 AI 总结




 文档📜






更多信息请参考:https://shardingsphere.apache.org/document/current/cn/overview/

 参与贡献🚀🧑💻



搭建开发环境和贡献者指南,请参考:https://shardingsphere.apache.org/community/cn/involved/

 团队成员



我们真挚感谢社区贡献者对 Apache ShardingSphere 的奉献。



 社区和支持💝🖤



:link: Mailing List. 适合于 Apache 社区相关讨论和版本发布;

:link: GitHub Issues. 适合于设计讨论、缺陷报告或者开发相关;

:link: X. 随时了解 Apache ShardingSphere 信息。



 项目状态



:white_check_mark: Version 5.5.4-SNAPSHOT: 正在积极开发中 :tada:

🔗 请访问 发布说明 获得更详细的信息。

:soon: Version 5.5.4

我们目前正在开发 5.5.4 版本,包含多项安全增强和性能优化。
请访问里程碑 获取最新开发进展。



 技术架构演进



Apache ShardingSphere 采用微内核 + 三层可插拔架构,实现了内核、功能组件与生态对接的完全解耦,为开发者提供了极致的灵活性和扩展能力。

 微内核 + 三层可插拔模型

核心层:
- 查询优化器:智能 SQL 路由和执行计划优化
- 分布式事务:ACID 事务保证和一致性协调
- 执行引擎:高效的分布式执行和结果聚合

功能层:
- 数据分片、读写分离、联邦查询
- 数据加密、数据脱敏、SQL 审计
- 影子库、可观测性、流量控制

生态层:
- 数据库协议适配(MySQL、PostgreSQL、Firebird 等)
- 注册中心集成(ZooKeeper、ETCD 等)
- 配置管理、服务发现、监控集成

 技术创新亮点

完全解耦架构:
- 数据库类型完全解耦,支持新数据库快速接入
- 功能模块完全解耦,支持功能按需组合

Apache ShardingSphere 由 JDBC、Proxy 两个既可独立部署又可混合部署的接入端组成,为 Java 同构、异构语言、云原生等多样化应用场景提供统一的分布式数据库解决方案。

 ShardingSphere-JDBC





定

Snapshot: 2026-11-10T09:35:25Z · Data license Apache-2.0 · JSON