Apache ShardingSphere 5.0.0 发布了 alpha 版本,自上个版本 4.1.1 发布以来,Apache ShardingSphere 一直在修复社区反馈的问题、加强功能和开发新特性。
根据官方的说法,5.x 是 Apache ShardingSphere 从分库分表中间件向分布式数据库生态转化的里程碑,从 4.x 版本后期开始打磨的可插拔架构在 5.x 版本已逐渐成型,项目的设计理念和 API 都进行了大幅提升。
Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 Sharding-JDBC、Sharding-Proxy 和 Sharding-Sidecar(规划中)这 3 款相互独立的产品组成。他们均提供标准化的数据分片、分布式事务、数据迁移、数据库治理和管控界面功能,可适用于如 Java 同构、异构语言、容器、云原生等各种多样化的应用场景。
5.0.0-alpha 版本发布信息具体如下
新特性
可插拔架构全面上线,支持开发者通过SPI机制扩展功能。
(扩展点请参见开发者手册:https://shardingsphere.apache.org/document/current/cn/dev-manual/)
提供独立SQL解析功能,用于解析多数据库方言。
提供RDL(Rule Definition Language)语句,支持使用SQL在线创建分片规则。
新增影子数据库功能。
编译 & 依赖
升级JDK的最低支持版本至Java8。
更新Google Guava库到29.0-jre版本。
更新Zookeeper 至 3.6.x 版本,并更新curator至5.1.0版本。
API 变更
全新分片/数据加密/影子库/主从规则配置API。
全新分片策略及分片算法API。
全新弹性迁移创建任务的API。
删除DefaultDataSourceName配置项,由ShardingSphere托管所有数据源。
属性配置项分隔符由点‘.’修改为减号‘-’。
参数allow.range.query.with.inline.sharding由全局参数调整至分片算法参数。
重构
依据数据库方言,重构解析模块域模型对象。
使用SPI机制重构元数据在线变更处理。
Orchestration模块重名为Governance模块。
MasterSlave模块重名为QueryReplica模块。
重构Governance注册中心中的元数据结构。
ShardingSphere UI合并配置中心和注册中心显示布局。
增强
MySQL SQL 和 PostgreSQL语法定义及解析支持增强。
增强对各方言数据库子查询的支持度。
支持对非分片表使用MySQL视图操作。
ShardingSphere Proxy支持对非分片表使用MySQL存储函数、存储过程操作。
支持使用SQLServer Top语法。
优化接入端metadata加载方式,提高启动速度。
优化批量插入性能。
接入端支持使用Oracle RAC连接串。
XA事务管理器增加对Oracle数据库的支持。
ShardingSphere Proxy支持使用p6sy驱动。
迁移工具支持断点续传功能。
迁移工具支持使用ShardingSphere JDBC迁移数据至新集群。
漏洞修复
修复处理OrderBy条件时,别名改写错误问题。
修复MySQL Insert语句包含表达式时,SQL改写错误问题。
修复Update on duplicate SQL中参数计算错误问题。
修复批量插入时,generatedKeys获取错误的问题。
修复DML语句更新操作多表校验异常问题。
修复表不存在时执行SQL导致NPE问题。
修复对不在配置规则中的表使用Show table命令的报错问题。
修复Oracle数据库在多用户场景下元数据加载错误问题。
修复不能在线启用从库节点问题。
修复ShardingSphere JDBC不支持PostgreSQL数组类型问题。
修复ShardingSphere Proxy在查询超长blob数据时无响应问题。
ShardingSphere-UI
合并配置中心和注册中心。
支持配置etcd注册中心。
支持查看metadata。
支持动态删除schema。