1.Mycat原理解析-Mycat架构分析

一、常见的数据库中间件对比

功能Sharding-JDBCTDDLAmoebaCobarMyCat
基于客户端还是服务端客户端客户端服务端服务端服务端
分库分表
MySQL交互协议JDBC DriverJDBC Driver前端用NIO,后端用JDBC Driver前端用NIO,后端用BIO前后端均用NIO
支持的数据库任意任意任意MySQL任意

MyCat是社区爱好者在阿里Cobar基础上进行二次开发,解决了cobar当时存 在的一些问题,并且加入了许多新的功能在其中,目前MyCAT社区活跃度很高。

二、架构图

1、Sharding-JDBC
这里写图片描述

2、TDDL
这里写图片描述

3、Amoeba
这里写图片描述

4、Cobar
这里写图片描述

5、MyCat
这里写图片描述
总结:

  1. TDDL 不同于其它几款产品,并非独立的中间件,只能算作中间层,是以 Jar 包方式提供给应用调用。属于JDBC Shard 的思想,网上也有很多其它类似产品。
  2. Amoeba 是作为一个真正的独立中间件提供服务,即应用去连接 Amoeba 操作 MySQL 集群,就像操作
    单个 MySQL 一样。从架构中可以看来,Amoeba 算中间件中的早期产品,后端还在使用 JDBC Driver。
  3. Cobar 是在 Amoeba 基础上进化的版本,一个显著变化是把后端 JDBC Driver 改为原生的 MySQL 通信协议层。后端去掉 JDBC Driver 后,意味着不再支持 JDBC 规范,不能支持 Oracle、PostgreSQL 等数据。但使
    用原生通信协议代替 JDBC Driver,后端的功能增加了很多想象力,比如主备切换、读写分离、异步操作等。
  4. MyCat 又是在 Cobar 基础上发展的版本,两个显著点是:
    (1)后端由 BIO 改为 NIO,并发量有大幅提高
    (2)增加了对Order By、Group By、limit 等聚合功能的支持(虽然 Cobar 也可以支持 Order By、Group By、Limit 语法,但是结果没有进行聚合,只是简单返回给前端,聚合功能还是需要业务系统自己完成)。
  • 1
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值