MySQL数据库之分布式数据库的中间件对比详解
小标 2019-03-06 来源 : 阅读 2371 评论 0

摘要:本文主要向大家介绍了MySQL数据库之分布式数据库的中间件对比详解 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

本文主要向大家介绍了MySQL数据库之分布式数据库的中间件对比详解 ,通过具体的内容向大家展现,希望对大家学习MySQL数据库有所帮助。

MySQL数据库之分布式数据库的中间件对比详解

分布式数据库的中间件对比详解


目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的。所以总结一个关于中间件比较的系列,希望可以对大家有帮助。


1. 什么是中间件


传统的架构模式就是 应用连接数据库直接对数据进行访问,这种架构特点就是简单方便。


但是随着目前数据量不断的增大我们就遇到了问题:


单个表数据量太大


单个库数据量太大


单台数据量服务器压力很大


读写速度遇到瓶颈


当面临以上问题时,我们会想到的第一种解决方式就是?向上扩展(scale up)?简单来说就是不断增加硬件性能。这种方式只能暂时解决问题,当业务量不断增长时还是解决不了问题。特别是淘宝,facebook,youtube这种业务成线性,甚至指数级上升的情况


此时我们不得不依赖于第二种方式:?水平扩展?。 直接增加机器,把数据库放到不同服务器上,在应用到数据库之间加一个proxy进行路由,这样就可以解决上面的问题了。


2. 中间件与读写分离


很多人都会把中间件认为是读写分离,其实读写分离只是中间件可以提供的一种功能,最主要的功能还是在于他可以?分库分表?,下面是一个读写分离的示意图:


上面的图可以看出,红线代表写请求,绿线代表读请求。这就是一个简单的读写分离,下面我们在看看分库分表中间件。


上面这幅图就可以看出中间件作用,比如下面的这个SQL:


[sql]?view plain?copy


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. 结语


这里主要是简单介绍了下各种中间件由来和特点,后面文章会陆续介绍各个中间件更详细的特性,优缺点,性能测试结果


          

本文由职坐标整理并发布,希望对同学们学习MySQL有所帮助,更多内容请关注职坐标数据库MySQL数据库频道!

本文由 @小标 发布于职坐标。未经许可,禁止转载。
喜欢 | 0 不喜欢 | 0
看完这篇文章有何感觉?已经有0人表态,0%的人喜欢 快给朋友分享吧~
评论(0)
后参与评论

您输入的评论内容中包含违禁敏感词

我知道了

助您圆梦职场 匹配合适岗位
验证码手机号,获得海同独家IT培训资料
选择就业方向:
人工智能物联网
大数据开发/分析
人工智能Python
Java全栈开发
WEB前端+H5

请输入正确的手机号码

请输入正确的验证码

获取验证码

您今天的短信下发次数太多了,明天再试试吧!

提交

我们会在第一时间安排职业规划师联系您!

您也可以联系我们的职业规划师咨询:

小职老师的微信号:z_zhizuobiao
小职老师的微信号:z_zhizuobiao

版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
 沪公网安备 31011502005948号    

©2015 www.zhizuobiao.com All Rights Reserved

208小时内训课程