你们分库分表使用什么中间件,有什么优点和缺点?

分析&回答

根据自己的实际使用来说:

cobar

阿里 b2b 团队开发和开源的,属于 proxy 层方案。早些年还可以用,但是最近几年都没更新了,基本没啥人用,差不多算是被抛弃的状态吧。而且不支持读写分离、存储过程、跨库 join 和分页等操作。

mycat

基于 cobar 改造的,属于 proxy 层方案 ,支持的功能非常完善,而且目前应该是非常火的而且不断流行的数据库中间件,社区很活跃。这种 proxy 层方案的缺点在于需要部署,自己运维一套中间件,运维成本高,但是好处在于对于各个项目是透明的,如果遇到升级之类的都是自己中间件那里搞就行了。

sharding-jdbc

当当开源的,属于 client 层方案 。确实之前用的还比较多一些,因为 SQL 语法支持也比较多,没有太多限制,而且目前推出到了 2.0 版本,支持分库分表、读写分离、分布式 id 生成、柔性事务(最大努力送达型事务、TCC 事务)。这种 client 层方案的优点在于不用部署,运维成本低,不需要代理层的二次转发请求,性能很高,但是如果遇到升级啥的需要各个系统都重新升级版本再发布,各个系统都需要耦合 sharding-jdbc 的依赖;

喵呜面试助手:一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!

相关推荐
winfreedoms几秒前
java-网络编程——黑马程序员学习笔记
java·网络·学习
naruto_lnq10 分钟前
Python生成器(Generator)与Yield关键字:惰性求值之美
jvm·数据库·python
开开心心就好12 分钟前
键盘改键工具免安装,自定义键位屏蔽误触
java·网络·windows·随机森林·计算机外设·电脑·excel
IManiy12 分钟前
总结之Temporal全局速率控制(二)第三方速率控制服务设计
java
OpenMiniServer19 分钟前
电气化能源革命下的社会
java·人工智能·能源
独自破碎E23 分钟前
LCR_019_验证回文串II
java·开发语言
坚持就完事了27 分钟前
Java中的一些关键字
java·开发语言
墨黎芜36 分钟前
SQL Server从入门到精通——C#与数据库
数据库·学习·信息可视化
爱学习的阿磊36 分钟前
持续集成/持续部署(CI/CD) for Python
jvm·数据库·python