ShardingSphere 是一款开源的「数据服务能力增强引擎」,提供数据分片、读写分离、数据加密、数据脱敏、分布式事务等多种能力,旨在构建「异构数据库」上层的「服务标准」和「生态」,屏蔽数据库碎片化对上层业务带来的差异化影响。
架构与特性
- 架构:分为 L1 内核层(数据库内核)、L2 功能层(核心定制化开发平台)和 L3 生态层(异构数据网关接口)。
- 特性:
- 分布式数据库解决方案:通过数据分片、分布式事务、弹性伸缩等功能,在不更换原有架构前提下提升存储容量及并发吞吐。
- 数据安全解决方案:提供数据加密(国密支持)和数据脱敏功能,实现跨平台、异构环境的数据安全。
- 全链路压测解决方案:基于内核 SQL 解析和可插拔架构,实现压测数据与生产数据隔离,支持全链路压测和金丝雀测试。
使用方式与运维
- 零侵入&低耦合:使用方式与数据库和原生 SDK 一致,增强功能与业务应用和数据库完全解耦。
- 多端访问&易运维:多类型接入端可组成一体化集群,支持 SQL 规则横向路由,方便监控和运维。
- 高性能&单元化:JavaSDK 具备极致高并发能力,适合微服务后端的数据单元化架构。
配置方式
- YAML 配置:
- 通过 YAML 维护存储资源和管理规则,需重启 Proxy 更新配置。
- 多个 database 需多个 YAML 文件,修改配置需服务器写权限。
- DistSQL 配置:
- 通过 DistSQL 维护存储资源和管理规则,单文件管理,无需重启 Proxy 更新配置。
- 支持 SQL 客户端查询规则,修改配置无需文件权限。
核心观点
ShardingSphere 通过可插拔架构和多层次设计,提供高性能、低耦合、易运维的分布式数据服务,支持异构数据库和多云环境,适用于数据库替换、海量数据存储、高并发访问和数据安全等场景。