sharding-jdbc与mycat(二)

mycat

MyCAT是一款由阿里Cobar演变而来的用于支持数据库读写分离、分片的分布式中间件。MyCAT可不但支持Oracle、MSSQL、MYSQL、PG、DB2关系型数据库,同时也支持MongoDB等非关系型数据库

mycat原理

MyCAT主要是通过对SQL的拦截,然后经过一定规则的分片解析、路由分析、读写分离分析、缓存分析等,然后将SQL发给后端真实的数据块,并将返回的结果做适当处理返回给客户端。

mycat功能

a.水平拆分
同一张表的不同记录,根据表的某个字段的某种规则拆分到多个数据库(主机)上,这既是水平拆分。

优点:

拆分规则抽象好,join操作基本可以数据库内完成
不存在单库大数据,高并发的性能瓶颈
应用端改造少
提高了系统稳定性和负载能力

缺点:
拆分规则难以抽象
分片事务一致性难以解决
数据多次扩展难度跟维护量极大
跨库join性能较差

b.垂直拆分
不同的表切分到不同的数据库(主机)上,这就是垂直拆分。

优点:
拆分后业务清晰,拆分规则明确
系统之间整合或扩展容易
数据库维护简单

缺点:
部分业务表无法Join,只能通过接口方式解决,提高了系统复杂度
受每种业务不同的限制存在单库性能瓶颈,不容易扩展跟性能提高
事务处理复杂

共同缺点:

分布式事务处理困难

跨节点join困难

扩数据源管理复杂

 

 

 

 

 

 

写在最后

有兴趣同学可以看看这些博客:

https://blog.csdn.net/shf4715/article/details/82961474

https://blog.csdn.net/jornada_/article/details/82947677

此篇博客对比了sharding-jdbc/mycat/以及阿里的drds,虽然不是很详尽但也是足够了,如要了解的更深欢迎随时前来留言评论

转载于:https://my.oschina.net/Pirvate/blog/3017111

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值