分库分表中间件介绍

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
云数据库 RDS PostgreSQL,高可用系列 2核4GB
简介: 分库分表中间件介绍

公众号merlinsea


业界常见的分库分表中间件:


   TDDL:淘宝根据⾃⼰的业务特点开发了 TDDL (Taobao Distributed Data Layer),基于JDBC规范,没有server,以client-jar的形式存在,引⼊项⽬即可使⽤。但是开源版本的TDDL功能⽐较少,阿⾥内部使⽤为主。


   Mycat: 官网:http://www.mycat.org.cn/ ,Java语⾔编写的MySQL数据库⽹络协议的开源中间件,前身是 Cobar 遵守Mysql原⽣协议,跨语⾔,跨平台,跨数据库的通⽤【中间件代理】;基于 Proxy,复写了 MySQL 协议,将 Mycat Server伪装成⼀个 MySQL 数据库 ;和ShardingShere下的Sharding-Proxy作⽤类似,需要单独部署


   Sharding JDBC :官网:https://shardingsphere.apache.org/ ,Apache ShardingSphere 是⼀套开源的分布式数据库中间件解决⽅案组成的⽣态圈,它由 Sharding-JDBC、Sharding-Proxy 和 Sharding Sidecar 3个独⽴产品组合;Sharding-JDBC基于jdbc驱动,不⽤额外的proxy,⽀持任意实现 JDBC规范的数据库 ;它使⽤客户端直连数据库,以 jar 包形式提供服务,⽆需额外部署和依赖 ;可理解为加强版的 JDBC 驱动,兼容 JDBC 和各类 ORM框架


Mycat的作为分库分表中间件的架构图:

640.jpg


Sharding jdbc作为分库分表中间件的架构图:

640.jpg


Mycat 和 sharding jdbc的对比


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

   

区别点:


   sharding jdbc :是基于jdbc驱动,不需要额外的中间代理,在本地应用层重写jdbc的原生方法来实现数据库分片。是基于 JDBC 接⼝的扩展,是以 jar 包的形式提供轻量级服务的,性能⾼。代码具有侵入性,耦合程度更高。

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


  • 关于leetcode算法训练营:


  •    加我微信号私聊参加训练营,尤其是想进入大厂工作的同学,算法是绕不过去的坎,我自己花了三年时间刷算法,总结思路,刷各种数据结构课程,加入我的训练营,我手把手以在线直播课的形式带你理思路,手把手带你写代码,让你真正体会算法之美~,同时遇到不明白的地方可以直接课上和我沟通,彻底解决你的代码困难证~

本人用c++刷了800道左右的算法,java语言刷了600道左右的算法题,并对这些题做了详细的个人总结。本科期间系统学习了数据结构与算法课程,同时考研过程中写完了率辉主编的《2020年数据结构高分笔记》和《数据结构1000题》,看完的视频包括《mooc浙大数据结构国家精品课程》和《王道考研408数据结构课程》,《王道2019年算法题讲解视频》,最终以初试专业第三名进入了北理工软件工程专业。熟悉并掌握常见的数据结构,比如链表、数组、树、图、队列、堆栈等等,精通数据结构教材中的所有算法,比如常见的遍历算法、动态规划,递归,回溯,剪枝,并查集,最短路径,拓扑排序等,所以快加入训练营吧,我们一起进步

奔跑的小梁,公众号:梁霖编程工具库我决定了,算法文档开源!!
相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
相关文章
|
中间件 存储 SQL
分库分表优化:换中间件 二次查询
【7月更文挑战第7天】
104 15
|
算法 中间件 Java
分库分表的一般做法 中间件的形态
【7月更文挑战第14天】
256 0
|
SQL 关系型数据库 Java
分库分表:中间件方案对比
分库分表:中间件方案对比
3145 92
分库分表:中间件方案对比
|
关系型数据库 MySQL 中间件
MySQL实现分库分表代码实战(Mango中间件)
MySQL实现分库分表代码实战(Mango中间件)
371 1
|
SQL 监控 Java
Mycat - 数据库分库分表中间件,国内最活跃的、性能最好的开源数据库中间件!
Mycat是什么 Mycat - 数据库分库分表中间件,国内最活跃的、性能最好的开源数据库中间件! 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替...
2944 99
|
关系型数据库 MySQL 中间件
Mycat中间件综合部署高可用-读写分离-分库分表(1.6)
Mycat中间件综合部署高可用-读写分离-分库分表(1.6)
177 0
|
SQL druid 中间件
分库分表中间件的高可用实践
分库分表中间件的高可用实践 前言 分库分表中间件在我们一年多的锤炼下,基本解决了可用性和高性能的问题(只能说基本,肯定还有隐藏的坑要填),问题自然而然的就聚焦于高可用。本文就阐述了我们在这方面做出的一些工作。
2214 47
|
消息中间件 存储 中间件
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
10076 0