关系型数据库分库分表中间件之选型
写在前面
本文主要介绍关系型数据库分库分表的中间件,主要包含中间件介绍、选项及其对比。虽然市面上很多分库分表中间件,但是大多数都是不友好或者社区活跃度不高的项目,当然还是有很多淘汰的中间件。目前,在实际业务场景中我们绝大多数情况都是选用sharding、mycat,以下文章重点介绍sharding与mycat的对比。
中间件介绍
较多使用
sharding-jdbc(当当)
基于jdbc驱动,不用额外的proxy,支持任意实现JDBC规范的数据库,它使用客户端直连数据库,以jar包形式提供服务,无需额外的部署和依赖。可以理解为加强版的JDBC驱动,兼容JDBC和各类ORM框架。
MyCAT(基于Cobar)
Java语言编写的Mysql数据网络协议开源的中间件,它的前身是Cobar,遵守Mysql原生的协议,跨语言,跨平台,跨数据库的通用中间件代理。Mycat是基于Proxy,它覆写了MySQL协议,将Mycat Server伪装成一个MySQL数据库,它和ShardingShere下的Sharding-proxy作用类似,需要单独的部署。
较少使用
TSharding(蘑菇街)
Atlas(奇虎360)
Cobar(阿里巴巴)
Oceanus(58同城)
Vitess(谷歌)
sharding与mycat选型比较
项目 | Sharding-JDBC | Mycat |
---|---|---|
社区环境 | 好 | 差 |
bug修复 | 及时 | 极差 |
架构设计 | 增强版的 JDBC 驱动 | 实现了 MySQL 协议的 Server。客户端所有的 jdbc 请求都必须要先交给 Mycat,再由 Mycat 转发到具本的真实服务器中。 |
sharding与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 表 JoinER Join基于 caltlet 的多表 Join | – | – |
IP 白名单 | – | 支持 | – | – |
SQL 黑名单 | – | 支持 | – | – |
存储过程 | – | 支持 | – | – |
参考博文:数据库–分库分表中间件–选型/对比/框架_IT利刃出鞘的博客-CSDN博客
关系型数据库分库分表中间件之选型相关推荐
- mysql分库分表中间件6_当当开源sharding-jdbc,轻量级数据库分库分表中间件
近期,当当开源了数据库分库分表中间件sharding-jdbc. Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据 ...
- 当当网mysql分库分表策略_当当开源sharding-jdbc,轻量级数据库分库分表中间件
近期,当当开源了数据库分库分表中间件sharding-jdbc. Sharding-JDBC是当当应用框架ddframe中,从关系型数据库模块dd-rdb中分离出来的数据库水平分片框架,实现透明化数据 ...
- Mycat - 数据库分库分表中间件,国内最活跃的、性能最好的开源数据库中间件
转载自 Mycat - 数据库分库分表中间件,国内最活跃的.性能最好的开源数据库中间件 Mycat是什么 Mycat - 数据库分库分表中间件,国内最活跃的.性能最好的开源数据库中间件! 一个彻底开源 ...
- mysql分库分表 ppt_数据库分库分表中间件架构解析.ppt
数据库分库分表中间件架构解析 Processor(1) Processor(n) MySQL MySQL MySQL Cobar结构 Front-end Communication Applicati ...
- 数据库分库分表中间件对比(很全)
数据库(分库分表)中间件对比 分区:对业务透明,分区只不过把存放数据的文件分成了许多小块,例如mysql中的一张表对应三个文件.MYD,MYI,frm. 根据一定的规则把数据文件(MYD)和索引文件( ...
- Mycat 读写分离 数据库分库分表 中间件 安装部署,及简单使用
MyCat是一个开源的分布式数据库系统,是一个实现了MySQL协议的服务器,前端用户可以把它看作是一个数据库代理,用MySQL客户端工具和命令行访问,而其后端可以用MySQL原生协议与多个MySQL服 ...
- 一文搞懂MySQL数据库分库分表
如果数据量过大,大家一般会分库分表.分库需要注意的内容比较少,但分表需要注意的内容就多了. 工作这几年没遇过数据量特别大的业务,那些过亿的数据,因为索引设置合理,单表性能没有影响,所以实战中一直没用过 ...
- 【数据库与事务系列】分库分表中间件
前面讲了利用mybatis插件进行多数据源切换和分表的方案,但是对业务侵入性较强,当然给予mybatis-plus的对业务侵入性还好,但是支持的策略有限.场景有限. 所以业界诞生了很多分库分表中间件来 ...
- 原生分布式数据库与分库分表中间件、云原生数据库有何区别
如今,我们正处于数据库从互联网基础软件转变为社会数字化基础软件的时代,在传统集中式数据库已不能满足大规模数据承载需求与高并发处理需求的形势下,基于海量数据场景应用而生的分布式数据库迎来应用热潮.据ID ...
最新文章
- 测温枪的工作原理全面解析,如何测出你的温度
- centos 6.5下KVM环境搭建
- Spring-data-redis:特性与实例--转载
- 从网恋到失恋只需要一秒...
- 离散中多重组合是指_数学系离散数学的几大核心领域
- java 泛型强制转换_java – 使用泛型强制转换为内部类
- 线程池和定时器——多线程的自动管理(转载)
- 第二章 算法——程序的灵魂
- LeetCode之二分查找
- [BZOJ 3052] [wc2013] 糖果公园 【树上莫队】
- LINUX用户执行过的命令,保存在.bash_history
- 菜鸟教程的Linux命令大全
- 程序员软技能:职场、学习、生活,代码之外生存之南
- 【Ice】【01】linux 安装ice
- 随机抽奖系统 Random类
- 【genius_platform软件平台开发】第二十八讲:NEON指令集优化(附实例)
- 关于《一种鱼眼图象到透视投影图象的变换模型》
- 你只认识大众汽车的车标怎么能行?赶紧用python采集所有车标学习一下
- Zabbix怎么监控奇安信网神防火墙
- FbxFormatConverter - Fbx 格式的转换器(目前只有:Binary、Ascii 的互转)
热门文章
- 从1G到5G,移动通讯在路上-------5G的最新表达式
- cad要素转ppt可编辑emf——城市规划(六)
- (ECCV-2022)GaitEdge:超越普通的端到端步态识别,提高实用性
- Android设计模式详解之责任链模式
- ES6 尾调用和尾递归优化
- 宏碁tc601bios_acer tc-601电脑biso中不存在LAUNCH CSM这个选项,无法将win8改装为win7,怎么办?...
- 如何使用BlindScanner共享打印一体机中的扫描功能
- 【腾讯笔试题】2019年腾讯实习正式批移动端开发笔试题
- 不小心清空了回收站怎么恢复文件 回收站清空的文件怎么恢复
- java jbutton边框颜色_在Java Swing中更改JButton的边框颜色,以保留插图