Apache ShardingSphere 遵循 Database Plus——我们社区的指导开发理念,旨在创建一个完整的生态系统,允许您将任何数据库转换为分布式数据库系统,并通过分片、弹性扩展、数据加密功能等轻松增强它。
[hidecontent type="logged" desc="隐藏内容:登录后可查看"]
它侧重于通过在现有和分散的数据库之上放置一个标准化的上层来重新利用现有的数据库,而不是创建一个新的数据库。
目标是提供统一的数据库服务,并最大限度地减少或消除底层数据库碎片化带来的挑战。这导致应用程序只需要与单个标准化服务进行通信。
该项目的核心概念是Connect
,Enhance
和Pluggable
。
Connect:
灵活适配数据库协议、SQL方言和数据库存储。它可以快速连接应用程序和异构数据库。Enhance:
捕获数据库访问入口以透明地提供附加功能,例如:重定向(分片、读写分离和影子)、转换(数据加密和掩码)、身份验证(安全、审计和权限)、治理(断路器和访问限制和分析) 、QoS 和可观察性)。Pluggable:
利用微内核和 3 层可插拔模式,可以灵活地嵌入特性和数据库生态系统。开发者可以像搭乐高积木一样定制他们的 ShardingSphere。几乎所有数据库都受支持,包括MySQL、PostgreSQL、SQL Server、Oracle 数据库、MariaDB或任何其他 SQL-92 数据库。
ShardingSphere于2020年4月16日成为Apache顶级项目。
Apache ShardingSphere 包括 2 个独立的产品:JDBC 和 Proxy。它们都提供了数据横向扩展、分布式事务和分布式治理的功能,适用于Java同构、异构语言、Cloud-Native等多种场景。
在 Java JDBC 层提供额外服务的轻量级 Java 框架。客户端直接连接数据库,以jar形式提供服务,无需额外部署和依赖。
一个透明的数据库代理,提供一个数据库服务器,封装了数据库二进制协议以支持异构语言。对 DBA 更友好,现在提供的 MySQL 和 PostgreSQL 版本可以使用任何类型的终端。
ShardingSphere-JDBC采用去中心化架构,适用于用Java开发的高性能轻量级OLTP应用。ShardingSphere-Proxy 提供静态入口和所有语言支持,适用于OLAP应用和分片数据库的管理和运行。
通过ShardingSphere-JDBC & ShardingSphere-Proxy的混合使用,以及同一个注册中心统一的分片策略,ShardingSphere生态可以构建适用于各种场景的应用系统。
[/hidecontent]