这个项目能做什么

Apache ShardingSphere 是一个 Apache 顶级项目,定位为“Database Plus”——一个构建在现有异构数据库之上的标准和生态系统层,而非一个新的数据库本身。它旨在让多个数据库表现得像一个数据库,提供统一访问和增强的计算能力。 该项目围绕三大支柱组织:Connect(适配数据库协议、SQL方言和存储格式)、Enhance(增加分布式计算、安全、流量控制和可观测性)以及 Pluggable(一个微内核加三层可插拔架构,将内核、功能组件和生态系统集成解耦)。 提供两个访问端。ShardingSphere-JDBC 是一个轻量级 Java 框架,作为增强的 JDBC 驱动,直接从应用程序连接数据库,无需单独部署;它与常见的 ORM 框架兼容。ShardingSphere-Proxy 是一个独立部署的透明数据库代理,使用 MySQL/PostgreSQL 兼容协议,使其他语言的客户端可以连接,并为 DBA 提供稳定的入口点。两者可以独立部署,也可以混合部署,共享注册中心和统一配置。 文档化的功能包括数据分片(水平、垂直和自定义策略)、带负载均衡和故障转移的读写分离、分布式事务(XA 和 BASE)、数据加密和脱敏、SQL 审计和访问控制、影子库压力测试、可观测性,以及跨数据库(如 MySQL、PostgreSQL、Oracle、SQL Server 和 Firebird)的 SQL 方言翻译。还描述了集群部署、Kubernetes 集成和监控。 README 指出,该项目于 2020 年 4 月成为 Apache 顶级项目,并被许多项目使用。它还警告说,JDBC 适配器依赖 ANTLR 的 SQL 解析缓存,该缓存可能随着许多 SQL 模板而增长,因此应配置合理的堆大小。文档、贡献指南、邮件列表、GitHub 问题和发布说明均已链接。版本 5.5.4-SNAPSHOT 被描述为正在积极开发中。