`

分布式数据库中间件对比总结

阅读更多

分布式数据库中间件对比总结(1)

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

1. 什么是中间件

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

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

  • 单个表数据量太大
  • 单个库数据量太大
  • 单台数据量服务器压力很大
  • 读写速度遇到瓶颈

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

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

2. 中间件与读写分离

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

分布式数据库中间件对比总结

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

分布式数据库中间件对比总结

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

[sql] view plain copy
 
  1. <span class="operator" style=""><span class="keyword" style="">select</span> * <span class="keyword" style="">from</span> table_name <span class="keyword" style="">where</span> id = <span class="number" style="">1</span>;</span>  

按照中间件分库分表算法,此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中间件

    全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...

    分布式数据库架构及企业实践-基于Mycat中间件.pdf

    全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...

    分布式数据库架构及企业实践:基于Mycat中间件

    全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...

    分布式数据库架构及企业实践_基于Mycat中间件(高清版PDF)

    全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。

    分布式数据库架构及企业实践 基于Mycat中间件

    全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...

    分布式数据库架构及企业实践-基于Mycat.pdf

    全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...

    分布式数据库架构及企业实践_基于mycat中间件

    全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...

    分布式数据库架构及企业实践-基于Mycat中间件 学习书籍

    全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...

    企业分布式数据库架构方案研究与设计

    通过先分析研究分布式数据库的读写分离、分表分库的原理进而引出数据库中间件的概念,然后对比当前主流数据库中间件优缺点,最终选择以mycat作为数据库中间件进行数据的分片以及读写分离,设计一套可供企业分布式...

    阿里巴巴开源的分布式计算系统 JStorm.zip

    目前,主流日志分析技术就使用JStorm或Storm管道系统, 将一个数据从一个系统传输到另外一个系统, 比如将数据库同步到Hadoop消息转化器, 将接受到的消息按照某种格式进行转化,存储到另外一个系统如消息中间件统计...

    电力市场运营系统体系结构设计及实现技术

    总结了电力市场运营系统的特点,如...讨论了基于IEC61970CIM电力系统国际标准模型的数据库平台、基于CORBA的分布式系统中间件平台、用XML进行数据交换以及采用电子商务运作模式等关键技术在电力市场运营系统中的应用。

    2021互联网大厂Java架构师面试题突击视频教程

    对比下redis和zk两种分布式锁的优劣? 43_说说你们的分布式session方案是啥?怎么做的? 44_了解分布式事务方案吗?你们都咋做的?有啥坑? 45_说说一般如何设计一个高并发的系统架构? 46_体验一下面试官对于分库...

    Redis全程攻略

    当然,Redis的的的还具备可以做分布式锁等其他功能,但是如果只是为了分布式锁这些其他功能,完全还有其他中间件代替,并不是非要使用Redis的的的。因此,这个问题主要从性能和并发两个角度去答。性能:我们在碰到...

    服务器性能计算公式全.docx

    极低 无需太多服务器、操作 系统、数据库与中间件。 总体第二方产品投资总 额最低 极咼 每个单位均需服务器、 操作系统、数据库与中 间件 较咼 每个二级单位均需配置 一套原文服务器,操作 系统 成熟度 较高 案例较...

    middleware

    中间件包括ShardingSphere分库分表的封装, Redis的封装, Kafka的封装, Elastic-Search的封装, db2es-admin的封装, db2es-client等的封装等。 sharding-starter分库分表:内置分库分表算法,SQL语法检测等功能...

    服务器性能计算公式.doc

    各种方案优点对比: "对比项目 "集中部署方案 "分布式部署方案 "混合部署方案 " "对广域网网络带宽 "极高, "极低 "较低 " "要求 "大量的数据需要在 "各二级单位的数据 "二级单位在进行数 " " "企业的广域网中传 ...

    VC与Labview、Matlab编程论文资料[2].rar

    基于LabVIEW的三种相位差测量法的对比分析.pdf 基于LabVIEW的三维运动测试分析系统的研究.pdf 基于LabVIEW的串口数据采集的实现及应用.pdf 基于LabVIEW的串口通信应用.pdf 基于LabVIEW的信号处理技术应用演示及...

    VC与Labview、Matlab编程论文资料

    基于LabVIEW的三种相位差测量法的对比分析.pdf 基于LabVIEW的三维运动测试分析系统的研究.pdf 基于LabVIEW的串口数据采集的实现及应用.pdf 基于LabVIEW的串口通信应用.pdf 基于LabVIEW的信号处理技术应用演示及...

Global site tag (gtag.js) - Google Analytics