ShardingSphere 5.5.3 介绍与选型指南
ShardingSphere 5.5.3 介绍与选型指南:官方资料溯源的 Database Plus 双形态架构、分片与加密治理能力、快速上手与适用限制,以及与 Vitess、ProxySQL、MyCat2、MySQL Router 的量化选型对比。
ShardingSphere 5.5.3 介绍与选型指南
目标:基于官方公开资料(shardingsphere.apache.org 官方站点、官方文档、GitHub 官方仓库发行页)溯源介绍 ShardingSphere 5.5.3 的架构、能力与选型对比,本文不做本地安装与运行实测,全部版本号、日期与社区数据标注来源与查询日期 2026-10-19。
一、信息基准
1.1 查询说明
- 查询日期:2026-10-19。
- 信息获取方式:纯官方资料溯源(Apache ShardingSphere 官方站点 shardingsphere.apache.org、官方文档站、官方发行目录 downloads.apache.org、GitHub 官方仓库 apache/shardingsphere 发行页),本文不做本地安装与运行实测。
- 版本结论:本次介绍的版本为 ShardingSphere 5.5.3(官方当前最新稳定版,2026-02-28 发布)。
- 与姊妹篇的关系:本站《Apache ShardingSphere 5.5.3 介绍与选型指南》已从 Apache 顶级项目视角做过一轮介绍(见 《Apache ShardingSphere 5.5.3 介绍与选型指南》);本文与其互为姊妹篇,立足 ShardingSphere 专栏的 Proxy 实操线视角,两篇结构与对比对象并不相同,内容不重复。
1.2 版本依据
| 项目 | 实查结果(2026-10-19) | 来源 |
|---|---|---|
| 最新稳定版 | 5.5.3(发布流条目 5.5.3,发布于 2026-02-28) | github.com/apache/shardingsphere/releases |
| 发行说明要点 | 包含 CVE-2025-55163 修复等 | 5.5.3 发行说明 |
| 官方发行目录 | downloads.apache.org/shardingsphere/ 当前收录 5.5.3 发行包 | downloads.apache.org/shardingsphere/ |
| 代码仓库 | apache/shardingsphere | github.com/apache/shardingsphere |
| 开源许可 | Apache License 2.0 | 仓库 LICENSE |
| 社区热度 | 20811 stars(GitHub 仓库页实查) | github.com/apache/shardingsphere |
1.3 官方来源清单
二、软件概述
本文介绍的是 ShardingSphere 5.5.3(2026-02-28 发布,Apache License 2.0)。
ShardingSphere 是 Apache 软件基金会顶级项目,官方将其定位为「Database Plus」:构建在既有数据库之上的分布式 SQL 事务与查询引擎,通过数据分片、读写分离、加密脱敏、弹性伸缩等增强能力复用底层数据库,而非替代数据库本身。项目前身为当当网开源的 Sharding-JDBC,2020 年 4 月从 Apache 孵化器毕业成为顶级项目。
5.5.3 以两种形态交付:ShardingSphere-JDBC 以增强驱动方式嵌入 Java 应用进程;ShardingSphere-Proxy 则是独立的数据库网关进程,对应用伪装为原生 MySQL/PostgreSQL 数据库,任何语言客户端可零改造直连。本专栏的部署实操均以 Proxy 形态展开,本文即以该形态为主要叙述基准。
三、核心架构
3.1 双形态接入
- JDBC 形态:以 jar 包增强应用既有 JDBC 链路,SQL 解析、路由、改写与结果归并都在应用进程内完成,无额外部署面,适合 Java 技术栈追求低损耗的场景。
- Proxy 形态:独立部署的数据库网关,向应用暴露 MySQL/PostgreSQL 通信协议;数据库运维工具、ORM 框架与多语言应用无须修改即可接入,适合异构技术栈统一治理与 DBA 侧管控。
3.2 SQL 执行流水线
进入系统的 SQL 依次经过:解析(生成 SQL 抽象语法树)→ 路由(按分片、读写分离规则确定目标库表)→ 改写(将逻辑 SQL 改写为真实库表上可执行的物理 SQL)→ 执行(下发到底层数据源)→ 归并(合并多库多表结果集)。联邦查询能力进一步支持跨多数据源的关联查询(官方文档)。
3.3 可插拔与治理面
5.x 微内核路线强调「可插拔」:分片、加密、脱敏、影子库、读写分离等功能以 SPI 扩展点装配,算法层可自定义替换;Proxy 形态同时提供 DistSQL(分布式 SQL)语法,可直接用 SQL 语句查询与动态变更分片、加密、数据源等元数据配置,具备在线治理能力(官方文档)。
四、功能特性
4.1 数据分片与读写分离
以声明式规则定义分库分表策略(分片键、分片算法、绑定表、广播表),配合读写分离规则将查询负载分流到从库;两种形态共享同一套规则配置语义(官方文档)。
4.2 数据加密与脱敏
对指定逻辑列提供透明加解密:应用按明文列读写,ShardingSphere 在落库/出库环节自动完成加密与解密,并支持脱敏输出,适合存量系统无侵入改造(官方文档)。
4.3 弹性伸缩与在线治理
提供弹性迁移(scaling)能力支撑分片扩容缩容,配合 DistSQL 可在线查看/调整规则;影子库为全链路压测提供数据隔离能力(官方文档)。
4.4 5.5.3 系列状态
5.5.3 于 2026-02-28 发布,发行说明包含 CVE-2025-55163 修复(GitHub Releases 实查),官方发行目录同步收录,属当前生产可用的稳定线;选型部署时应核对该版本已知问题列表与官方文档的版本说明。
五、快速上手
以下步骤转述自官方文档的通用路径,本文不做本地实测。
5.1 JDBC 形态接入
官方文档路径:在 Maven 工程引入 org.apache.shardingsphere:shardingsphere-jdbc-core 依赖,按官方示例编写 YAML 规则文件(数据源、分片规则),随后将 DataSource 交给应用使用,分片逻辑对业务代码透明。
5.2 Proxy 形态启动
从官方发行目录 downloads.apache.org/shardingsphere/ 获取 5.5.3 的二进制发行包并解压,按官方文档完成两处配置:
conf/server.yaml:声明认证用户与治理属性;conf/database-sharding.yaml:声明真实数据源与分片规则。
执行 bin/start.sh 启动后,Proxy 默认监听 3307 端口,以任意 MySQL 客户端连接该端口即可像访问普通数据库一样创建逻辑库表并验证分片落库;官方文档的分片示例给出了从建表到查询的完整流程。
5.3 验证
连接 Proxy 后执行建库建表与插入查询,对照底层真实库表确认数据按分片规则分布;读写分离与加密能力可按官方文档的对应章节补充规则后同法验证。
六、适用场景与限制
6.1 适用场景
- Java 单体/微服务的分库分表改造:JDBC 形态无网关层、损耗小。
- 多语言异构应用统一数据入口:Proxy 形态以标准数据库协议收敛治理面。
- 数据安全治理:分片 + 加密 + 脱敏一体化,避免多套中间件拼装。
- 存量数据库在线扩容:弹性迁移与 DistSQL 在线变更支撑平滑伸缩。
6.2 限制与注意事项
- 复杂 SQL(如部分窗口函数、复杂子查询)在分片场景下的兼容度需对照官方文档的支持范围逐一核验。
- Proxy 形态引入独立网关进程,链路上多一跳,高并发场景需评估其吞吐与连接数上限。
- 5.x 仍在向「全功能可插拔」演进,升级版本前应核对官方变更说明;5.5.3 修复的 CVE(CVE-2025-55163)提示需关注版本安全动态。
- JDBC 形态仅面向 Java/JVM 生态,非 Java 技术栈应选 Proxy 形态。
七、同类选型对比
7.1 候选概览
| 工具 | 定位 | 开源许可 |
|---|---|---|
| ShardingSphere 5.5.3 | Database Plus:分片 + 加密 + 治理一体化 | Apache-2.0 |
| Vitess | 云原生 MySQL 水平扩展与集群编排 | Apache-2.0 |
| ProxySQL | MySQL 代理层:连接池、读写分离、查询重写 | GPL-3.0 |
| MyCat2 | MySQL 分库分表中间件 | README 标注 2023.8 起为 Apache 许可(早期 GPL) |
| MySQL Router | MySQL 官方轻量路由组件 | GPL-2.0(Oracle 社区版) |
7.2 量化对比(2026-10-19 实查)
| 维度 | ShardingSphere 5.5.3 | Vitess | ProxySQL | MyCat2 | MySQL Router |
|---|---|---|---|---|---|
| 开源许可 | Apache-2.0 | Apache-2.0 | GPL-3.0 | Apache(README:from 2023.8) | GPL-2.0 |
| GitHub stars | 20811(apache/shardingsphere) | 21387(vitessio/vitess) | 6939(sysown/proxysql) | 1734(MyCATApache/Mycat2) | 147(镜像仓库已归档) |
| 最新发行 | 5.5.3(2026-02-28) | v24.0.5(2026-10-13) | 2.7.4(2026-10-17) | v1.22-release(2022-06-25) | 26.7.0 GA(dev.mysql.com) |
| 版本节奏 | 5.5 稳定线补丁维护 | 双线维护(24.0/23.0),CNCF 毕业项目 | 2.7 线与 2.5 维护线并行 | 长期无新发行 | 随 MySQL 版本体系发布(另有 8.4 LTS 线) |
| 技术栈 | Java | Go 为主(CNCF 生态) | C++ | Java | C++ |
| 形态侧重 | JDBC + Proxy 双形态,分片/加密/脱敏一体化 | K8s 原生 MySQL 编排与 VTGate 全局视图 | MySQL/MariaDB 代理层(无分片算法生态) | MySQL 分库分表(社区活跃度低) | InnoDB Cluster/ReplicaSet 路由 |
| 协议兼容 | MySQL/PostgreSQL 协议(Proxy) | MySQL | MySQL/MariaDB | MySQL | MySQL |
(stars 与发版时间取自各项目 GitHub 仓库页、Releases 页与 dev.mysql.com 实查;许可见各自仓库 LICENSE 或官方说明。)
7.3 选型建议
Java 技术栈且希望以一套组件同时解决分库分表、读写分离与加密脱敏的,优先 ShardingSphere,按应用语言选 JDBC 或 Proxy 形态;深度使用 Kubernetes、需要把超大规模 MySQL 集群作为云原生工作负载编排的,选 Vitess(本站有 《CentOS 8 安装 Vitess 24.0 指南》 可作入门参考);仅需连接池、读写分离与查询重写的代理层而不做分片的,选 ProxySQL;MyCat2 自 2022 年后无新发行、社区活跃度低,新项目不建议首选(背景可参考本站 《MyCat 1.6.7.5 介绍与选型指南》);MySQL Router 则适合已采用 MySQL InnoDB Cluster 官方架构的场景。
八、参考链接
- 官方站点:https://shardingsphere.apache.org/
- 官方文档:https://shardingsphere.apache.org/document/current/
- 官方发行目录:https://downloads.apache.org/shardingsphere/
- 源码仓库:https://github.com/apache/shardingsphere
- 5.5.3 发行页:https://github.com/apache/shardingsphere/releases/tag/5.5.3
- Vitess 官网:https://vitess.io/
- Vitess 仓库:https://github.com/vitessio/vitess
- ProxySQL 官网:https://proxysql.com/
- MyCat2 仓库:https://github.com/MyCATApache/Mycat2
- MySQL Router 下载页:https://dev.mysql.com/downloads/router/