一 简介
Apache ShardingSphere是一款开源的分布式数据库中间件组成的生态圈
二 成员包含
Sharding-JDBC是一款轻量级的Java框架,在JDBC层提供上述核心功能,使用方式与正常的JDBC方式如出一辙,面向Java开发的用户。
Sharding-Proxy是一款实现了MySQL二进制协议的服务器端版本,类似于网易的cetus,爱可生的dble等
Sharding-Sidecar从Service Mesh的理念中应用而生,面向于云原生架构。
三 github
https://github.com/apache/incubator-shardingsphere
https://shardingsphere.apache.org/document/current/cn/overview/ 中文文档
四 具体分析
1 sql本身是否都支持
sql解析器本身已经在不断完善,支持更多的sql,不支持的可参考文档.对比各自业务进行测评
2 查询问题
1 不支持跨库join
2 拥有广播表,当广播表更改时,每个节点都在执行,实现join
3 拥有绑定表功能,当使用同一拆分规则和片键的两张表可进行绑定实现join
4 拥有分片键注入功能,当利用非分片键条件查询时,指定了强制分片路由的SQL将会无视原有的分片逻辑(hint),直接路由至指定的真实数据节点。
5 支持读写分离功能(hint)->不是很完善
3 全局主键功能
1 uuid
2 SNOWFLAKE(雪花算法)
3 LEFT(美团算法)
4 支持分布式事务
5 数据脱敏
6 数据治理
五 总结
1 此生态圈更注重 分库分表的业务场景,未来会添加扩容功能,非常强悍
2 具体的还要大家多多测试,可以对比其他中间件 进行综合考虑
3 本文还会继续修订和补充