分布式数据库中间件对比总结
分布式数据库中间件对比总结
分布式数据库中间件对比总结(1)
目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的。所以总结一个关于中间件比较的系列,希望可以对大家有帮助。
1. 什么是中间件
传统的架构模式就是 应用连接数据库直接对数据进行访问,这种架构特点就是简单方便。
但是随着目前数据量不断的增大我们就遇到了问题:
- 单个表数据量太大
- 单个库数据量太大
- 单台数据量服务器压力很大
- 读写速度遇到瓶颈
当面临以上问题时,我们会想到的第一种解决方式就是 向上扩展(scale up) 简单来说就是不断增加硬件性能。这种方式只能暂时解决问题,当业务量不断增长时还是解决不了问题。特别是淘宝,facebook,youtube这种业务成线性,甚至指数级上升的情况
此时我们不得不依赖于第二种方式: 水平扩展 。 直接增加机器,把数据库放到不同服务器上,在应用到数据库之间加一个proxy进行路由,这样就可以解决上面的问题了。
2. 中间件与读写分离
很多人都会把中间件认为是读写分离,其实读写分离只是中间件可以提供的一种功能,最主要的功能还是在于他可以 分库分表 ,下面是一个读写分离的示意图:
上面的图可以看出,红线代表写请求,绿线代表读请求。这就是一个简单的读写分离,下面我们在看看分库分表中间件。
上面这幅图就可以看出中间件作用,比如下面的这个SQL:
select * from table_name where id = 1;
按照中间件分库分表算法,此SQL将发送到DB1节点,由DB1这个MySQL负责解析和获取id=1的数据,并通过中间件返回给客户端。而在读写分离结构中并没有这些分库分表规则, 他只能在众多读节点中load balance随机进行分发,它要求各个节点都要存放一份完整的数据。
3.各类中间件比较
目前市面上中间件种类很多种 先看下各种中间件背景:
Cobar:
阿里巴巴B2B开发的关系型分布式系统,管理将近3000个MySQL实例。 在阿里经受住了考验,后面由于作者的走开的原因cobar没有人维护 了,阿里也开发了tddl替代cobar。
MyCAT:
社区爱好者在阿里cobar基础上进行二次开发,解决了cobar当时存 在的一些问题,并且加入了许多新的功能在其中。目前MyCAT社区活 跃度很高,目前已经有一些公司在使用MyCAT。总体来说支持度比 较高,也会一直维护下去,
OneProxy:
数据库界大牛,前支付宝数据库团队领导楼总开发,基于mysql官方 的proxy思想利用c进行开发的,OneProxy是一款商业收费的中间件, 楼总舍去了一些功能点,专注在性能和稳定性上。有朋友测试过说在 高并发下很稳定。
Vitess:
这个中间件是Youtube生产在使用的,但是架构很复杂。 与以往中间件不同,使用Vitess应用改动比较大要 使用他提供语言的API接口,我们可以借鉴他其中的一些设计思想。
Kingshard:
Kingshard是前360Atlas中间件开发团队的陈菲利用业务时间 用go语言开发的,目前参与开发的人员有3个左右, 目前来看还不是成熟可以使用的产品,需要在不断完善。
Atlas:
360团队基于mysql proxy 把lua用C改写。原有版本是支持分表, 目前已经放出了分库分表版本。在网上看到一些朋友经常说在高并 发下会经常挂掉,如果大家要使用需要提前做好测试。
MaxScale与MySQL Route:
这两个中间件都算是官方的吧,MaxScale是mariadb (MySQL原作者维护的一个版本)研发的,目前版本不支持分库分表。
MySQL Route是现在MySQL 官方Oracle公司发布出来的一个中间件。
这两个中间件后面也会跟进测试下,看下效果如何。
4. 结语
这里主要是简单介绍了下各种中间件由来和特点,后面文章会陆续介绍各个中间件更详细的特性,优缺点,性能测试结果
分布式数据库中间件对比总结相关推荐
- 分布式数据库中间件对比总结MyCat Cobar Sharding-jdbc
分布式数据库中间件对比总结(1) 目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的.所以总结一个关于中间件比较的系列,希望可以对大家有帮助. 1. 什么 ...
- mysql分布式数据库中间件对比
目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的.所以总结一个关于中间件比较的系列,希望可以对大家有帮助. 1. 什么是中间件 传统的架构模式就是 应用 ...
- 华为云分布式数据库中间件DDM和开源MyCAT对比
前言 华为云分布式数据库中间件(Distributed Database Middleware)是解决数据库容量.性能瓶颈和分布式扩展问题的中间件服务,提供分库分表.读写分离.弹性扩容等能力,应对海量 ...
- 开源的分布式数据库中间件系统Mycat和阿里巴巴Cobar的对比
mycat 不得不说的缘分 原创 2016年04月15日 15:48:17 27834 1,愕然回首,它在灯火阑珊处 关于mysql集群中间件,以前写在应用程序里面,由开发人员实现,在配置文件里面写多 ...
- mysql中ddl和ddm_对话DDM:分布式数据库中间件全解析
进入云计算时代,传统的数据库在性能和容量等方面已无法满足企业的要求,随着数据量的不断骤增,易于扩展.拆分的数据库解决方案对于企业的云化转型更是显得尤为重要.为使企业应用上云更简单,分布式数据库中间件D ...
- 分布式数据库中间件Sharding-JDBC介绍
前文中介绍了分布式数据库中间件Mycat的一些特性,作为对比本文简要介绍Sharding-JDBC的一些特性以及分片的实现原理,进行对比分析以了解. 1.ShardingSphere介绍 Shardi ...
- 安排,Mycat教程-分布式数据库中间件课程
来源:来自网络,如侵权请告知博主删除,感谢????.仅学习使用,请勿用于其他- 有粉丝问我要分布式数据库相关的东西,所以今天小编给大家安排一个. 有的时候后台可能会漏一些消息,然后你提的需求我没看见 ...
- 开源分布式数据库中间件
转自:https://www.csdn.net/article/2015-07-16/2825228 MyCat:开源分布式数据库中间件 为什么需要MyCat? 虽然云计算时代,传统数据库存在着先天性 ...
- (转载)MyCat:开源分布式数据库中间件
发现MyCat这个东西,觉得还是有很多应用场合,之前为了mysql读写分离.分布等伤透脑筋,没想到有现成的中间件工具,看来很多有经验的公司是受到过折磨,才整出好工具.方法和工具的发明,总是因为问题的存 ...
最新文章
- FastAI 课程学习笔记 lesson 1:宠物图片分类
- java两个线程循环打印_java循环打印 多线程
- 海思3559A上编译Valgrind源码操作步骤
- Linux shell脚本判断服务器网络是否可以上网
- NetBeans 时事通讯(刊号 # 27 - Sep 24, 2008)
- php加断点,使用dump函数,给php加断点测试
- kylin linux 安装教程,新手入门必备:kylin安装教程介绍!
- 深入探索并发编程之内存屏障:资源控制操作
- CVPR 2019 GCT:《Graph Convolutional Tracking》论文笔记
- (1)kendo UI使用基础介绍与问题整理——简单说明
- 计算机公开课教学反思,语文公开课教学反思
- windows下使用kafka
- 清空image画布并改变大小填充背景色
- python常用数据结构及算法_常用数据结构和算法汇总
- java学习笔记 --- 面向对象3
- 计算机大赛鼓励语录,比赛鼓励的话
- Kali 实现ARP断网攻击_arp断网攻击_arp欺骗
- 中国最具竞争力的十大调查研究咨询公司
- c语言表示静态存储类别的关键字是,在C语言中,表示静态存储类别的关键字是:...
- Domain Adaption1
热门文章
- 12010.linux应用程序之spi
- 绿联扩展坞拆解_拆解报告:UGREEN绿联3A1C四口多功能扩展坞(带SD卡槽版)
- OSI七层、TCP/IP五层、UDP、TCP的socket编程(服务端及客户端)、字节序转换、多进程以及多线程服务端的实现
- 数据恢复技术在计算机犯罪侦查中的应用,浅谈数据恢复技术在计算机犯罪侦查中的应用...
- python网站服务器好麻烦_python写的网站,云服务器经常无法访问
- 【LeetCode】剑指 Offer 26. 树的子结构
- 使用maven-war-plugin 打包时排除不需要的文件
- ORACLE使用数据泵导入导出部分表
- 简单工厂模式和策略模式结合使用php
- 使用abcpdf将html转换成pdf文件