分库分表中间件介绍

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 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年算法题讲解视频》,最终以初试专业第三名进入了北理工软件工程专业。熟悉并掌握常见的数据结构,比如链表、数组、树、图、队列、堆栈等等,精通数据结构教材中的所有算法,比如常见的遍历算法、动态规划,递归,回溯,剪枝,并查集,最短路径,拓扑排序等,所以快加入训练营吧,我们一起进步

奔跑的小梁,公众号:梁霖编程工具库我决定了,算法文档开源!!
相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
3月前
|
中间件 存储 SQL
分库分表优化:换中间件 二次查询
【7月更文挑战第7天】
50 15
|
3月前
|
算法 中间件 Java
分库分表的一般做法 中间件的形态
【7月更文挑战第14天】
99 0
|
关系型数据库 MySQL 中间件
MySQL实现分库分表代码实战(Mango中间件)
MySQL实现分库分表代码实战(Mango中间件)
195 1
|
关系型数据库 MySQL 中间件
Mycat中间件综合部署高可用-读写分离-分库分表(1.6)
Mycat中间件综合部署高可用-读写分离-分库分表(1.6)
129 0
|
SQL 关系型数据库 Java
分库分表:中间件方案对比
分库分表:中间件方案对比
2363 3
分库分表:中间件方案对比
|
SQL cobar 算法
Mysql分库分表中间件 技术选型对比
Mysql分库分表中间件MyCAT 和 DBLE的技术选型分析
|
SQL druid 中间件
分库分表中间件的高可用实践
分库分表中间件的高可用实践 前言 分库分表中间件在我们一年多的锤炼下,基本解决了可用性和高性能的问题(只能说基本,肯定还有隐藏的坑要填),问题自然而然的就聚焦于高可用。本文就阐述了我们在这方面做出的一些工作。
2143 4
|
SQL 监控 Java
Mycat - 数据库分库分表中间件,国内最活跃的、性能最好的开源数据库中间件!
Mycat是什么 Mycat - 数据库分库分表中间件,国内最活跃的、性能最好的开源数据库中间件! 一个彻底开源的,面向企业应用开发的大数据库集群 支持事务、ACID、可以替代MySQL的加强版数据库 一个可以视为MySQL集群的企业级数据库,用来替...
2728 5
|
4月前
|
消息中间件 存储 中间件
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
【消息中间件】详解三大MQ:RabbitMQ、RocketMQ、Kafka
962 0