MySQL中间件方案盘点

简介:   首先数据库技术发展的基础还是在业务推动的背景下,能够实现相关的技术保障。业务需求的提升必然会在数据量,访问量等方面有更高的要求,而映射到数据库层面就不是简单的扩容和添加资源了,我们有时候更需要弹性,需要快速实现,需要更高的性能。

 

首先数据库技术发展的基础还是在业务推动的背景下,能够实现相关的技术保障。业务需求的提升必然会在数据量,访问量等方面有更高的要求,而映射到数据库层面就不是简单的扩容和添加资源了,我们有时候更需要弹性,需要快速实现,需要更高的性能。这些都是摆在我们面前的问题,而不仅仅是DBA团队。

所以早期的很多数据库,从一主一从,一主多从的架构,逐步演变到了读写分离,分库分表,然后就是分布式。而同时从很多层面来说,行业内的方案真是百花齐放,记得前几天还和同事聊,说如果对比一下Oracle和MySQL,让我怎么评价,我说单纯评估单机的性能和功能,MySQL要落后很多,但是从成本,技术把控,定制层面来看,MySQL的简单反而成了其中的一个优势,在这个基础上,它有非常多的开源方案,这些让原本MySQL的应用变得非常丰富起来,你说MySQL能不能做企业级方案,你看看BAT的使用场景,还是能够经受住考验的,注意我在此处说的的使用场景,没有一刀切的场景。

回到正题,MySQL的中间件其实有很多,官方的开源的,我们就来简单来说说,行业里还有很多的方案,有些还没有做调研,就没在文中及时推出来。

先来说说MySQL中间件能够做什么?要回答这个问题,我们可以反向问一个问题,随着业务需求的变化,数据库会有哪些瓶颈,比如:

1.单台服务器无法承载已有的压力

2.数据库单表容量越来越大

3.大量的读写需求无法平衡

4.资源如果扩容,应用改动较大

5. 资源的负载没法拆分,或者不易拆分

所以市面上的很多数据库中间件主要是分担了其中的大部分或者一部分的功能点。

沃趣科技的董红禹总结的这个图不错,我直接拿过来了。

img_f67a2c751999de352dbb03835f748932.jpe

我们基本会讨论下面的几个中间件,有些不在上面的图中,会额外补充一些。

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版本的基础上,对其进行了优化,增加了一些新的功能特性。

img_462b426b20b4562751fcdbd391c7f6ce.jpg

Mycat

这也是国内的一个中间件方案,业内比较火,官方链接是:http://www.mycat.io/

img_70d3f8bdab60ec6b0261d9dcffe013d3.jpg

还有一本Mycat相关的书《分布式数据库架构及企业实践——基于Mycat中间件》

根据我的了解,他主要是支持MySQL,同时也支持其它的数据库,比如Oracle等等,也是一波好友一起来做得这个事情。

我比较喜欢它的一个原因是因为开源,而且源代码是Java.

oneproxy

这是前支付宝的架构师楼总开发,目前支持多中数据库,基于MySQL官方 的proxy思想利用c进行开发的,OneProxy是一款商业收费的中间件,专注在性能和稳定性上,是商业付费的。

img_b3379b9cf0160585090dbf69fc5d9a12.jpe

DRDS

阿里分布式关系型数据库服务(Distribute Relational Database Service,简称DRDS)是一种水平拆分、可平滑扩缩容、读写分离的在线分布式数据库服务。前身为淘宝 TDDL,再之前还有Cobar,已经不维护了。

该图来自:http://blog.csdn.net/jerome_s/article/details/53966569

img_a667edcdb9de192052449cbb90d72061.jpe

Vitess

谷歌开发的数据库中间件,集群基于 ZooKeeper 管理,通过 RPC 方式进行数据处理官方网站很简介: http://vitess.io/ 打开就是一个大V

img_adbc46611221dd1fd3100527b14b0f4b.png

Maxscale

MaxScale是mariadb研发的,目前版本不支持分库分表,在其它几个方面都很不错。github链接为:https://github.com/mariadb-corporation/MaxScale

img_061b299edf801e5901e2d9dbf04fb07f.jpg

相关实践学习
每个IT人都想学的“Web应用上云经典架构”实战
本实验从Web应用上云这个最基本的、最普遍的需求出发,帮助IT从业者们通过“阿里云Web应用上云解决方案”,了解一个企业级Web应用上云的常见架构,了解如何构建一个高可用、可扩展的企业级应用架构。
MySQL数据库入门学习
本课程通过最流行的开源数据库MySQL带你了解数据库的世界。   相关的阿里云产品:云数据库RDS MySQL 版 阿里云关系型数据库RDS(Relational Database Service)是一种稳定可靠、可弹性伸缩的在线数据库服务,提供容灾、备份、恢复、迁移等方面的全套解决方案,彻底解决数据库运维的烦恼。 了解产品详情: https://www.aliyun.com/product/rds/mysql 
目录
相关文章
|
3月前
|
运维 监控 关系型数据库
MySQL高可用方案:MHA与Galera Cluster对比
本文深入对比了MySQL高可用方案MHA与Galera Cluster的架构原理及适用场景。MHA适用于读写分离、集中写入的场景,具备高效写性能与简单运维优势;而Galera Cluster提供强一致性与多主写入能力,适合对数据一致性要求严格的业务。通过架构对比、性能分析及运维复杂度评估,帮助读者根据自身业务需求选择最合适的高可用方案。
|
4月前
|
存储 关系型数据库 MySQL
修复.net Framework4.x连接MYSQL时遇到utf8mb3字符集不支持错误方案。
通过上述步骤大多数情况下能够解决由于UTF-encoding相关错误所带来影响,在实施过程当中要注意备份重要信息以防止意外发生造成无法挽回损失,并且逐一排查确认具体原因以采取针对性措施解除障碍。
280 12
|
5月前
|
SQL 关系型数据库 MySQL
解决MySQL "ONLY_FULL_GROUP_BY" 错误的方案
在实际操作中,应优先考虑修正查询,使之符合 `ONLY_FULL_GROUP_BY`模式的要求,从而既保持了查询的准确性,也避免了潜在的不一致和难以预测的结果。只有在完全理解查询的业务逻辑及其后果,并且需要临时解决问题的情况下,才选择修改SQL模式或使用 `ANY_VALUE()`等方法作为短期解决方案。
685 8
|
4月前
|
监控 NoSQL 关系型数据库
保障Redis与MySQL数据一致性的强化方案
在设计时,需要充分考虑到业务场景和系统复杂度,避免为了追求一致性而过度牺牲系统性能。保持简洁但有效的策略往往比采取过于复杂的方案更加实际。同时,各种方案都需要在实际业务场景中经过慎重评估和充分测试才可以投入生产环境。
271 0
|
存储 SQL 关系型数据库
Mysql高可用架构方案
本文阐述了Mysql高可用架构方案,介绍了 主从模式,MHA模式,MMM模式,MGR模式 方案的实现方式,没有哪个方案是完美的,开发人员在选择何种方案应用到项目中也没有标准答案,合适的才是最好的。
930 3
Mysql高可用架构方案
|
5月前
|
关系型数据库 MySQL Java
MySQL 分库分表 + 平滑扩容方案 (秒懂+史上最全)
MySQL 分库分表 + 平滑扩容方案 (秒懂+史上最全)
|
12月前
|
存储 缓存 关系型数据库
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
MySQL的存储引擎是其核心组件之一,负责数据的存储、索引和检索。不同的存储引擎具有不同的功能和特性,可以根据业务需求 选择合适的引擎。本文详细介绍了MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案。
2019 57
【MySQL进阶篇】存储引擎(MySQL体系结构、InnoDB、MyISAM、Memory区别及特点、存储引擎的选择方案)
|
关系型数据库 MySQL 数据库
|
9月前
|
消息中间件 缓存 NoSQL
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
缓存与数据库的一致性方案,Redis与Mysql一致性方案,大厂P8的终极方案(图解+秒懂+史上最全)
|
10月前
|
SQL 关系型数据库 MySQL
基于SQL Server / MySQL进行百万条数据过滤优化方案
对百万级别数据进行高效过滤查询,需要综合使用索引、查询优化、表分区、统计信息和视图等技术手段。通过合理的数据库设计和查询优化,可以显著提升查询性能,确保系统的高效稳定运行。
484 9

推荐镜像

更多