专栏首页杨建荣的学习笔记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

本文分享自微信公众号 - 杨建荣的学习笔记(jianrong-notes),作者:r13笔记第57天

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2017-08-19

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 最近在读的一些文章

    我犯下的代价惨痛的错误使我改变了看问题的角度,从“我知道我是对的”变成了“我怎么知道我是对的”。这些错误让我养成了谦逊的习惯,我需要用谦逊平衡我的勇敢。—《原则...

    jeanron100
  • Oracle Cloud for MySQL的初步测试

    在Oracle Cloud服务的体验中,除了高大上的Oracle 18c能让我眼前一亮,提前享受下未发布版本。

    jeanron100
  • 数据访问层的优化思路(r10笔记第80天)

    对于数据访问层的优化,我简单总结了一下,其实里面有很多的点子现在想起来有一种灵光一现的感觉,但是真真切切的,里面有不少是之前公司已经做到了的,所以一个做产品的公...

    jeanron100
  • mysql数据库31个常见错误分析以及解决办法

    翻译:不能连接到localhost 上的mysql?分析:这说明“localhost”计算机是存在的,但在这台机器上却没提供MySQL服务。?需要启动这台机器上...

    lyb-geek
  • 使用MySQL作为Django数据库后端

    用户1456517
  • 第2章 安装MySQL和MariaDB

    mysqld守护进程,是对数据库进行存储和操控的执行者。它监听特定端口(默认是3306),供用户提交查询。标准的MySQL客户端就叫作mysql。

    用户1250179
  • 一个小时学会MySQL数据库

    导读:本文详细介绍了MySQL数据库,主要从MySQL数据库的概要、MySQL介绍、如何快速安装运行MySQL数据库、使用GUI操作MySQL、如何使用SQL访...

    数据和云
  • MySQL基础教程:数据的导入导出

    学会数据库的导入导出非常重要,为什么呢?向下看。首先您可以把数据转储进行备份和还原,以便在紧急情况下恢复数据库的旧副本。您还可以把数据迁移到新服务器或开发环境。

    穿鞋跑得快
  • 腾讯云数据库专场特惠 2.5 折起 新用户 1 元体验 2060 元升级/续费大礼包免费领

    腾讯云数据库专场特惠活动开始,大家知道腾讯云是国内重量级的云服务提供商,和阿里云一样也占据了国内云服务器的很大市场份额。这次针对云数据库的专场特惠,腾讯云也拿出...

    魏艾斯博客www.vpsss.net
  • 【迪B课堂】MySQL表空间碎片产生原因和优化

    点击上方蓝字每天学习数据库 【迪B课堂】为腾讯云数据库产品经理迪B哥开设的面向数据库开发者、数据库运维人员、云端运维人员的系列培训课程,旨在帮助大家从入门到精...

    腾讯云数据库 TencentDB

扫码关注云+社区

领取腾讯云代金券

玩转腾讯云 有奖征文活动