ShardingSphere 4.0.0 发布,ShardingSphere 四周年贺礼

2020年01月14日

本次发布的4.0.0正式版本将前不久发布的4.0.0-RC3版本的核心功能不断打磨优化,修复社区反馈的问题,且持续进行微内核重构打磨;在社区建设方面,不断践行Apache Way,致力于打造充满活力、规范、互助的社区。

Apache ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-Proxy和Sharding-Sidecar(规划中)这3款相互独立的产品组成。他们均提供标准化的数据分片、分布式事务、数据迁移、数据库治理和管控界面功能,可适用于如Java同构、异构语言、容器、云原生等各种多样化的应用场景。

4.0.0作为ShardingSphere进入Apache基金会后发布的正式版本,做了以下调整:

 API变更

  1. 将package和maven groupId中的io.shardingsphere改为org.apache.shardingsphere。

  2. 调整Sharding-JDBC配置的API。

  3. 调整注册中心的持久化数据结构。

 新功能

  1. 支持SQL92语法。

  2. 支持PostgreSQL版的Sharding-Proxy。

  3. 路由至单一数据节点的SQL 100%全兼容。

  4. 支持使用 ">" ,"<" ,">=" ,"<=" 符号进行分片键操作。

  5. 支持DISTINCT语法。

  6. 支持广播表。

  7. 支持使用LEAF算法生成分布式ID。

  8. 支持XA事务,集成事务管理器 Atomikos,Narayana 和Bitronix。

  9. 支持BASE事务,集成分布式事务Seata。

  10. 支持数据脱敏。

  11. 支持Skywalking插件。

  12. 支持Sharding-UI,即ShardingSphere的治理管控平台。

 增强

  1. 支持MariaDB SQL语法。

  2. 提高SQL解析的兼容性。

  3. 支持SELECT FOR UPDATE 仅路由到主数据源。

  4. 支持在Sharding-Proxy端使用Hint。

  5. 统一Sharding-JDBC和Sharding-Proxy在注册中心的数据存储结构。

  6. 在线动态修改数据源配置,仅重新创建当前修改的数据源对象。

  7. 支持对SnowflakeID生成器进行偏移量配置。

 Bug修复

  1. 提高JDBC 驱动的兼容性。

  2. 支持带别名的DELETE语句。

  3. 检查并禁止对分片列进行数据更新。

  4. 修复TINYINT,SMALLINT类型的数据获取时转换为Integer的问题。

展开阅读全文
17 收藏
分享
加载中
精彩评论
请说出你们业务的故事,让大家见见世面
2020-01-14 11:06
7
举报
支持中文,我就先赞在看。👋
2020-01-14 10:33
4
举报
😓说正事,我想表达的是sharding-jdbc4.0初始化读表信息的事情
2020-01-14 14:13
3
举报
😯业务就不说了,就说场景,我们一年有20亿的数据,分布在5000张表中,原本想升级到4.0,无奈居然读table的meta信息,想当于要操作5000次,系统启动非常的慢,只能用回2.0
2020-01-14 13:46
2
举报
4.0.0版本有个bug就是不支持JDK8里LocalDateTime,然而很奇怪的是 RC2、RC3都没有这个问题
2020-01-15 19:47
1
举报
最新评论 (18)
4.0.0版本有个bug就是不支持JDK8里LocalDateTime,然而很奇怪的是 RC2、RC3都没有这个问题
2020-01-15 19:47
1
回复
举报
一直在用,很好,很完美
2020-01-14 21:28
1
回复
举报
mycat已经彻底不维护了
2020-01-14 17:27
1
回复
举报
终于等到了 尝试了rc2 rc3 都多少有bug
2020-01-14 15:59
0
回复
举报
有点东西,看看 mycat 2.0 如何,可以做个比较分析
2020-01-14 12:33
0
回复
举报
2.0没有看到出吧
2020-01-14 14:58
0
回复
举报
暂时没有,据说快了,看官方群说的
2020-01-15 02:19
0
回复
举报
提个问题,我们的业务场景有5000张表,但是sharing-4.0初始化数据源时会去读表的信息,导致系统启动非常慢
2020-01-14 10:40
1
回复
举报
请说出你们业务的故事,让大家见见世面
2020-01-14 11:06
7
回复
举报
😯业务就不说了,就说场景,我们一年有20亿的数据,分布在5000张表中,原本想升级到4.0,无奈居然读table的meta信息,想当于要操作5000次,系统启动非常的慢,只能用回2.0
2020-01-14 13:46
2
回复
举报
如果都是时序数据,可以试试时序数据库,做一下异构数据
2020-01-14 14:07
0
回复
举报
😓说正事,我想表达的是sharding-jdbc4.0初始化读表信息的事情
2020-01-14 14:13
3
回复
举报
你好,很抱歉给你带来使用上的困扰哈。
ShardingSphere有个配置参数叫check.table.metadata.enabled,可以通过启动时的properties配置,默认是不check所有的分表。
如果5000张表是分在一个逻辑表的真实表,不会每张表都加载。如果5000张表是不同的业务逻辑表,建议您拆分您的系统设计,这样的系统设计可能不是很合理。
2020-01-15 13:13
1
回复
举报
5000是一张逻辑表,我们的mysql还是5.6版本的,RC3好像初始化时有问题,自增meta的类型好像不对,我们用了RC2,RC2看源码没读到这个属性配置,不过metadata能够提速是最好的了,期待大神升级
2020-01-15 19:41
0
回复
举报
5000是一张逻辑表的话,无需全量加载,只要设置check.table.metadata.enabled=false就可以了
2020-01-17 15:33
0
回复
举报
我们也在考虑读取metadata提速的事情了,以后希望可以用多线程,耗费更多的连接的方式并行加载元数据。
2.0的没有元数据的版本,很多高级功能是不能使用的。
2020-01-15 13:15
1
回复
举报
支持中文,我就先赞在看。👋
2020-01-14 10:33
4
回复
举报
赞👍
2020-01-14 10:19
1
回复
举报
更多评论
18 评论
17 收藏
分享
返回顶部
顶部