阿熊
阿熊
元老
发贴: 5644
积分: 454
|
于 2016-06-06 08:57
今年1月18日,当当的分布式数据库中间层Sharding-JDBC正式开源。经过近半年的潜心打磨,Sharding-JDBC于六一前夕正式发布1.3.0里程碑版本。
Sharding-JDBC源于当当应用框架ddframe的关系型数据库访问模块dd-rdb,主要功能是使数据库分库分表访问透明化。项目定位为轻量级Java中间件,采用JDBC层协议封装,可以理解为增强版的JDBC,适用于绝大部分Java ORM框架和使用标准SQL的数据库。
Sharding-JDBC在当前开源数据库中间件百花齐放,但稳定易用产品不多的大环境下,有效弥补了关键功能缺失痛点。这里回顾一下Sharding-JDBC发布了4个里程碑版本: •1.0.0 分库分表: 1.提供灵活的函数式分片规则配置,可支持=,BETWEEN,IN等操作符分片; 2.完善的SQL支持,对LIMIT,聚合,分组,排序,OR等SQL均可解析和多结果集归并。
•1.1.0 配置易用性: 1.提供Spring命名空间简化配置; 2.提供Yaml配置,为不使用Spring的开发者提供同样简便的配置方式。
•1.2.0 最大努力送达型柔性事务 1.通过同步和异步尝试,在弱XA的基础上更近一步,提供最大努力送达型柔性事务保证数据的最终一致性; 2.更贴近于原生事务的TCC型柔性事务也将于不久之后发布。
•1.3.0 读写分离 1.提供读写分离数据源,可简便的与分片数据源相结合,便于实现分片+主从的完美数据库配置方式; 2.最大限度提供数据一致性保障。如: a.同一线程内如有写库操作,读取操作即路由至主库; b.提供Hint方式强制主库路由。
Sharding-JDBC将持续更新,完善分布式数据库中间层缺失的其他功能。目前已在计划中的功能包括分布式主键,TCC柔性事务,数据迁移,HA,元数据注册管理等。同时也会在SQL解析的性能,SQL的兼容性,配置的易用性等方面不断优化。
源代码:https://github.com/dangdangdotcom/sharding-jdbc
|