Bootstrap

分库分表常见中间件介绍和ShardingSphere极速认知+实战内容

大话业界常见数据库分库分表中间件介绍

Cobar(已经被淘汰)

TDDL: 淘宝根据自己的业务特点开发了TDDL(Taobao Distributed Data Layer),它是基于JDBC规范,没有Server,以client-jar的形式存储,引入项目即可使用。开源的功能比较少,阿里内部使用为主。

MyCat: Java语言编写的Mysql数据网络协议开源的中间件,它的前身是Cobar,遵守Mysql原生的协议,跨语言,跨平台,跨数据库的通用中间件代理。Mycat是基于Proxy,它腹泻了MySQL协议,将Mycat Server伪装成一个MySQL数据库,它和ShardingShere下的Sharding-proxy作用类似,需要单独的部署。

官网地址:mycat.org.cn/


db13e4e3a284c7f74502991c472edd58.png


Sharding-JDBC: 基于jdbc驱动,不用额外的proxy,支持任意实现JDBC规范的数据库,它使用客户端直连数据库,以jar包形式提供服务,无需额外的部署和依赖。可以理解为加强版的JDBC驱动,兼容JDBC和各类ORM框架


6d3df58ca0203c771464aea3b2dfabf6.png


面试官最爱问的Mycat与ShardingJdbc区别

1、两者的设计理念是相同的,主流程都是SQL解析->SQL路由->SQL改写->结果并归

2、sharding-jdbc是基于jdbc驱动,不用额外的proxy,在本地应用层重写Jdbc原生的方法,实现数据库分片形式。sharding-jdbc是基于JDBC接口的扩展,是以jar包的形式提供轻量级服务的,性能高,代码有入侵性。

3、Mycat是基于Proxy,它复写了MySQL协议,将Mycat Server伪装成一个MySQL数据库,客户端所有的jdbc请求都必须要先交给MyCat,再有MyCat转发到具体的真实服务器,缺点效率偏低,中间包装类一层,代码无侵入性。

ShardingSphere的三大构成

ShardingSphere-Sidecar(规划中): 定位为Kubernetes的云原生数据库代理,以Sidecar的形式代理所有对数据库的访问,通过无中心、零侵入的方案提供与数据库交互的啮合层,就是Database Mesh,又被称为数据库网格。

ShardingSphere-JDBC:

;