分布式数据库中间件对比总结(1)
目前数据库中间件有很多,基本这些中间件在下都有了解和使用,各种中间件优缺点及使用场景也都有些心的。所以总结一个关于中间件比较的系列,希望可以对大家有帮助。
1. 什么是中间件
传统的架构模式就是 应用连接数据库直接对数据进行访问,这种架构特点就是简单方便。
但是随着目前数据量不断的增大我们就遇到了问题:
- 单个表数据量太大
- 单个库数据量太大
- 单台数据量服务器压力很大
- 读写速度遇到瓶颈
当面临以上问题时,我们会想到的第一种解决方式就是 向上扩展(scale up) 简单来说就是不断增加硬件性能。这种方式只能暂时解决问题,当业务量不断增长时还是解决不了问题。特别是淘宝,facebook,youtube这种业务成线性,甚至指数级上升的情况
此时我们不得不依赖于第二种方式: 水平扩展 。 直接增加机器,把数据库放到不同服务器上,在应用到数据库之间加一个proxy进行路由,这样就可以解决上面的问题了。
2. 中间件与读写分离
很多人都会把中间件认为是读写分离,其实读写分离只是中间件可以提供的一种功能,最主要的功能还是在于他可以 分库分表 ,下面是一个读写分离的示意图:
上面的图可以看出,红线代表写请求,绿线代表读请求。这就是一个简单的读写分离,下面我们在看看分库分表中间件。
上面这幅图就可以看出中间件作用,比如下面的这个SQL:
- <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. 结语
这里主要是简单介绍了下各种中间件由来和特点,后面文章会陆续介绍各个中间件更详细的特性,优缺点,性能测试结果
相关推荐
全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...
全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...
全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。
全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...
全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...
全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...
全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...
全书总计 8 章,首先简单介绍了分布式系统和分布式数据库的需求,然后讲解了分布式数据库的实现原理,并对市场上存在的各种分布式数据库中间件进行了对比,再围绕着如何利用 Mycat 实现分布式数据库而展开。...
**稳定性优先**:选择成熟、经过市场验证的分布式数据库产品,避免使用未经充分测试的第三方中间件。\n2. **专业运维**:建立专门的团队或寻求供应商支持,确保分布式数据库的日常运维和问题解决。\n3. **培训与...
4. **分布式数据库技术对比** - **垂直分库**:早期的分库策略,深度定制化,但应用程序需要进行大量定制。 - **分库分表**:通过中间件进行SQL拆分,兼容性较好,但性能受限。 - **原生分布式数据库**:...
【实验验证】实验结果证实了这种方法的有效性,表明了基于中间件的同步系统能更有效地应对分布式数据库的挑战,提供更好的服务质量和系统效率。 【应用场景】海上信息中心的分布式数据库同步机制不仅适用于海洋产业...
### 分布式数据库迁移架构优化 #### 一、分布式数据库迁移架构评估 **技术栈评估** 1. **数据库系统比较**: - **评估源数据库和目标数据库的特性**:对比两个系统的数据模型、存储机制、查询语言等方面的差异。...
文章中提到了两种数据访问层中间件的实现方式:客户端数据库中间件和服务端数据库中间件。这两种实现方式采用了分布式架构,即数据的存储和访问不再集中在单一服务器,而是分散到多台服务器上。客户端数据库中间件...
#### 技术对比总结 - **ICE与ACE的区别**:ICE相对于ACE来说更为年轻且具有活力,专注于提供简洁高效的分布式通信解决方案。ICE的易用性和性能优势使得它在很多场景下成为更好的选择。 - **ICE的优势**:ICE支持...
MyCat是一款开源的MySQL分布式数据库中间件,特别适合大型互联网企业。它支持数据库的分库分表,实现了读写分离、负载均衡等功能。 3.1 MyCat 介绍 MyCat设计的目标是解决大数据量场景下的数据库性能问题,提供了一...
### 与其他分布式数据库中间件对比 MyCat与TDDL、Amoeba、Cobar等产品有以下区别: - TDDL是一个JDBC Shard解决方案,作为应用程序的一部分,不像MyCat和Amoeba那样是独立的中间件。 - Amoeba作为独立中间件,提供...
【基于机群架构的并行数据库中间件系统改进研究】 在现代信息技术中,数据库系统扮演着至关重要的角色,尤其在处理大规模数据时。随着数据量的急剧增长,传统的单节点数据库系统已无法满足高效处理需求。因此,基于...