MySql专题

Mycat和Sharding-jdbc的区别

2020-04-24  本文已影响0人  baishangbing

Mycat和Sharding-jdbc的区别

1)mycat是一个中间件的第三方应用,sharding-jdbc是一个jar包

2)使用mycat时不需要改代码,而使用sharding-jdbc时需要修改代码

Mycat(proxy中间件层):

image

Sharding-jdbc(TDDL为代表的应用层):

image

可以看出sharding-jdbc作为一个组件集成在应用内,而mycat则作为一个独立的应用需要单独部署,drds则是阿里云的一个独立产品,不过需要结合rds一起使用。从架构上看sharding-jdbc更符合分布式架构的设计,直连数据库,没有中间应用,理论性能是最高的(实际性能需要结合具体的代码实现,理论性能可以理解为上限,通过不断优化代码实现,逐渐接近理论性能)。同时缺点也很明显,由于作为组件存在,需要集成在应用内,意味着作为使用方,必须要集成到代码里,使得开发成本相对较高;另一方面,由于需要集成在应用内,使得需要针对不同语言(java、C、PHP……)有不同的实现(事实上sharding-jdbc目前只支持java),这样组件本身的维护成本也会很高。最终将应用场景限定在由java开发的应用这一种场景下。

sharding-jdbc后续发展为Sharding-Sphere,包含sharding-jdbc、Sharding-Proxy、Sharding-Sidecar

/ Sharding-JDBC Sharding-Proxy Sharding-Sidecar
Database Any MySQL/PostgreSQL MySQL/PostgreSQL
Connections Count Cost High Low High
Supported Languages Java Only Any Any
PerformanceLow lossRelatively High lossLow loss
Decentralization Yes No No
Static Entry No Yes No

参考文献:http://www.cicoding.cn/sharding-jdbc/sharding-jdbc002/

上一篇下一篇

猜你喜欢

热点阅读