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

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

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

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

二、架构图

1、Sharding-JDBC
1.Mycat原理解析-Mycat架构分析_第1张图片

2、TDDL
1.Mycat原理解析-Mycat架构分析_第2张图片

3、Amoeba
1.Mycat原理解析-Mycat架构分析_第3张图片

4、Cobar
1.Mycat原理解析-Mycat架构分析_第4张图片

5、MyCat
1.Mycat原理解析-Mycat架构分析_第5张图片
总结:

  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 语法,但是结果没有进行聚合,只是简单返回给前端,聚合功能还是需要业务系统自己完成)。

你可能感兴趣的:(数据库,Mycat原理解析,数据库,mycat)