简介
本文介绍数据库分库分表的中间件,包括:中间件大全、选型的对比。
中间件大全
- sharding-jdbc(当当)
- MyCAT(基于Cobar)
- TSharding(蘑菇街)
- Atlas(奇虎360)
- Cobar(阿里巴巴)
- Oceanus(58同城)
- Vitess(谷歌)
- 了解更多点击这里啊!!!
选型比较
项 | Sharding-JDBC | Mycat |
社区环境 | 好 | 差 |
bug修复 | 及时 | 直接不修复!!! |
架构设计 | 增强版的 JDBC 驱动 | 实现了 MySQL 协议的 Server。客户端所有的 jdbc 请求都必须要先交给 Mycat,再由 Mycat 转发到具本的真实服务器中。 |
功能比较
项 | Sharding-JDBC | Mycat | Sharding-Proxy | Sharding-Sidecar |
官方网站 | 官方网站 | 官方网站 | 官方网站 | 官方网站 |
源码地址 | GitHub | GitHub | GitHub | GitHub |
官方文档 | 官方文档 | Mycat 权威指南 | 官方文档 | 官方文档 |
开发语言 | Java | Java | Java | Java |
应用语言 | 仅Java | 任意 | 任意 | 任意 |
开源协议 | Apache-2.0 | GPL-2.0/GPL-3.0 | Apache-2.0 | Apache-2.0 |
数据库 | 任何遵循 SQL92 标准的数据库 | 任何遵循 SQL92 标准的数据库 | MySQL/PostgreSQL | MySQL/PostgreSQL |
连接数 | 高 | 低 | 低 | 高 |
代码入侵 | 需要修改代码 | 无 | 无 | 无 |
性能 | 损耗低 | 损耗略高 | 损耗略高 | 损耗低 |
无中心化 | 是 | 否 | 否 | 是 |
静态入口 | 无 | 有 | 有 | 无 |
管理控制台 | Sharding-UI | Mycat-web | Sharding-UI | Sharding-UI |
分库分表 | ✔️ | 单库多表/多库单表 | ✔️ | ✔️ |
多租户方案 | -- | ✔️ | -- | -- |
读写分离 | ✔️ | ✔️ | ✔️ | ✔️ |
分片策略定制化 | ✔️ | ✔️ | ✔️ | ✔️ |
分布式主键 | ✔️ | ✔️ | ✔️ | ✔️ |
标准化事务接口 | ✔️ | ✔️ | ✔️ | ✔️ |
XA强一致事务 | ✔️ | ✔️ | ✔️ | ✔️ |
柔性事务 | ✔️ | -- | ✔️ | ✔️ |
配置动态化 | ✔️ | 开发中 | ✔️ | ✔️ |
编排治理 | ✔️ | 开发中 | ✔️ | ✔️ |
数据脱敏 | ✔️ | -- | ✔️ | ✔️ |
可视化链路追踪 | ✔️ | -- | ✔️ | ✔️ |
弹性伸缩 | 开发中 | 开发中 | 开发中 | 开发中 |
多节点操作 | 分页 去重 排序 分组 聚合 | 分页 去重 排序 分组 聚合 | 分页 去重 排序 分组 聚合 | 分页 去重 排序 分组 聚合 |
跨库关联 | -- | 跨库 2 表 Join ER Join 基于 caltlet 的多表 Join | -- | -- |
IP 白名单 | -- | ✔️ | -- | -- |
SQL 黑名单 | -- | ✔️ | -- | -- |
存储过程 | -- | ✔️ | -- | -- |