什么是 Apache ShardingSphere?

Apache ShardingSphere 是一款分布式的数据库生态系统,可以将任意数据库转换为分布式数据库,并通过数据分片、弹性伸缩、加密等能力对原有数据库进行增强。

核心功能

数据分片

ShardingSphere 基于底层数据库提供分布式数据库解决方案,可以水平扩展计算和存储。

高可用

ShardingSphere 提供基于原生或 Kubernetes 环境下数据库集群的分布式高可用能力。

数据加密

ShardingSphere 提供完整、透明、安全、低成本的数据加密解决方案。

分布式事务

基于 XA 和 BASE 的混合事务引擎,ShardingSphere 提供在独立数据库上的分布式事务功能,保证跨数据源的数据安全。

数据迁移

ShardingSphere 提供跨数据源的数据迁移能力,并可支持重分片扩展。

影子库

在全链路压测场景下,ShardingSphere 支持不同工作负载下的数据隔离,避免测试数据污染生产环境。

读写分离

基于对 SQL 语义理解及对底层数据库拓扑感知能力,ShardingSphere 提供灵活的读写流量拆分和读流量负载均衡。

联邦查询

ShardingSphere 提供跨数据源的复杂查询分析能力,实现跨源的数据关联与聚合。

DistSQL

提供扩展 SQL 增强,可实现管理操作资源及插件能力。

ShardingSphere 秉承 Database Plus 理念

Database Plus

ShardingSphere 社区产品基于 Database Plus 理念,旨在打造数据库之上的生态系统。通过连接增强可插拔的生态定位,提高原生数据库的计算能力。

云原生

项目生态支持云原生及多云架构,利用 Kubernetes Operator 与 ShardingSphere Proxy 结合,优雅实现数据库系统上云

高性能

支持包括 MySQL、PostgreSQL、SQL Server、Oracle、openGauss 及其他兼容 SQL-92 标准的数据库。通过数据分片及并行技术,突破原有性能瓶颈

版本演进

1.x

Sharding-JDBC

初始版本,基于 JDBC 驱动,仅可进行分片。

2016
2.x

面向集群

引入 ZooKeeper 作为注册中心,提供分布式能力。

2017
3.x

Sharding-Proxy

ShardingSphere-Proxy 上线,提供 like-database 的访问能力。

2018
4.x

Apache ShardingSphere

正式进入 Apache 基金会,并兼容各种关系型数据库。

2019
5.x

可插拔

内核可插拔化多种功能,例如加密、分片都可灵活组合使用。

2021
6.x

面向云

ShardingSphere 通过 Helm Chart 和 Operator 方式扩展到云端。通过这些方式可将 ShardingSphere 部署在 Kubernetes,包括 AWS EKS、minikube 及自有 Kuberneters。

...
7.x

面向生态

Database Plus 理念实践化,通过 DistSQL 构建分布式可插拔生态。

...
8.x

规划中

...