《MySQL中间件盘点》要点:
本文介绍了MySQL中间件盘点,希望对您有用。如果有疑问,可以联系我们。
首先数据库技术发展的基础还是在业务推动的背景下,能够实现相关的技术保障.业务需求的提升必然会在数据量,拜访量等方面有更高的要求,而映射到数据库层面就不是简单的扩容和添加资源了,我们有时候更需要弹性,需要快速实现,需要更高的性能.这些都是摆在我们面前的问题,而不仅仅是DBA团队.
所以早期的很多数据库,从一主一从,一主多从的架构,逐步演变到了读写分离,分库分表,然后就是分布式.而同时从很多层面来说,行业内的方案真是百花齐放,记得前几天还和同事聊,说如果对比一下Oracle和MySQL,让我怎么评价,我说单纯评估单机的性能和功能,MySQL要落后很多,但是从本钱,技术把控,定制层面来看,MySQL的简单反而成了其中的一个优势,在这个基础上,它有非常多的开源方案,这些让原本MySQL的应用变得非常丰富起来,你说MySQL能不能做企业级方案,你看看BAT的使用场景,还是能够经受住考验的,注意我在此处说的的使用场景,没有一刀切的场景.
回到正题,MySQL的中间件其实有许多,官方的开源的,我们就来简单来说说.
先来说说MySQL中间件能够做什么?要回答这个问题,我们可以反向问一个问题,随着业务需求的变化,数据库会有哪些瓶颈,好比:
1.单台服务器无法承载已有的压力
2.数据库单表容量越来越年夜
3.年夜量的读写需求无法平衡
4.资源如果扩容,应用改动较年夜
5. 资源的负载没法拆分,或者不易拆分
所以市面上的很多数据库中间件主要是分担了其中的大部门或者一部门的功能点.
沃趣科技的董红禹总结的这个图不错,我直接拿过来了.
我们基本会讨论下面的几个中间件,有些不在上面的图中,会额外弥补一些.
MySQL Fabric, MySQL Router,MySQL Proxy
Fabric能提供MySQL的HA和Sharding方案,MySQL Router是一个轻量级的中间件用来实现高可用和扩展性的功能.MySQL Fabric在驱动层面可以实现高可用和扩展功能,需要应用端来适配改造.而MySQL Router中间件的拜访协议与MySQL一致,应用不需要做任何的修改,在MySQL官方近期推出的InnoDB Cluster中MySQL Router是作为“三驾马车”来使用的.而落寞的是MySQL proxy,目前已经无法下载了,自从推出以来主要就是测试版本,所以在很多功能上多多少少还是有些问题.
360 Atlas
这是国内360公司推出的一个中间件计划,github地址为:https://github.com/Qihoo360/Atlas
从github的情况来看,星级蛮高,最新的维护是在4天前.它的设计是在mysql-proxy 0.8.2版本的根基上,对其进行了优化,增加了一些新的功能特性.
Mycat
这也是国内的一个中间件方案,业内比拟火,官方链接是:http://www.mycat.io/
还有一本Mycat相关的书《散布式数据库架构及企业实践——基于Mycat中间件》
根据我的了解,他主要是支持MySQL,同时也支持其它的数据库,好比Oracle等等,也是一波好友一起来做得这个事情.
我比拟喜欢它的一个原因是因为开源,而且源代码是Java.
oneproxy
这是前付出宝的架构师楼总开发,目前支持多中数据库,基于MySQL官方 的proxy思想利用c进行开发的,OneProxy是一款商业收费的中间件,专注在性能和稳定性上,是商业付费的.
DRDS
阿里分布式关系型数据库服务(Distribute Relational Database Service,简称DRDS)是一种程度拆分、可平滑扩缩容、读写分离的在线分布式数据库服务.前身为淘宝 TDDL,再之前还有Cobar,已经不维护了.
该图来自:http://blog.csdn.net/jerome_s/article/details/53966569
Vitess
谷歌开发的数据库中间件,集群基于 ZooKeeper 管理,通过 RPC 方式进行数据处理官方网站很简介: http://vitess.io/ 打开便是一个大V
Maxscale
MaxScale是mariadb研发的,今朝版本不支持分库分表,在其它几个方面都很不错.github链接为:https://github.com/mariadb-corporation/MaxScale
欢迎参与《MySQL中间件盘点》讨论,分享您的想法,维易PHP学院为您提供专业教程。
转载请注明本页网址:
http://www.vephp.com/jiaocheng/7875.html