Oracle官方中间件:MySQL Router架构简介

来源:转载

原文出处:架构之美

今天我们来简单介绍一下Oracle官方出品的数据库负载均衡利器——MySQL Router。

什么是MySQL Router?

MySQL Router是一个介于应用层和DB层之间的开源的轻量级中间件,它能够将前端应用的请求分析转发给后端DB服务器处理,从而实现DB的负载均衡,可以说它是先前MySQL Proxy的替代品,我们可以在Github找到它的源码。类似的工具有360的Atlas、美团点评的DBProxy、MyCat等几种。

MySQL Router架构

使用这种架构,前端应用不用直接连接DB Server,而仅仅是连接到MySQL Router,能够很方便地实现数据库集群的扩展,接下来我们再来看看它的一些其他的主要功能。

主要功能

1、自动故障转移

使用MySQL Router实现来读写分离,前端应用层不需要直连接底层DB,而是统一连接到MySQL Router。MySQL Router对前端应用层是透明的,我们不需要在代码层做任何处理。应用层会把MySQL Router一个正常的MySQL实例使用,底层DB Master挂了会自动使用Backup节点替代,十分方便。

2、DB负载均衡

MySQL中间件通过类似连接池的方式,将请求按照一定的规则分发给底层数据库,从而实现DB的读写分离、高可用。

优化单点入口

相信很多人一眼就能看出上图存在什么问题,后端的实现了高可用,但是入口却没有,MySQL Router挂了咋办?其实很简单,我们还是可以Keepalived来解决单点入口的问题,整体的架构就变为:

应用层不直接连接MySQL Router,而是连接虚拟VIP,这样就可以同时使用两个入口,避免出现入门不可用的情况,造成整个系统崩溃。

性能问题

与直连的方式对比,使用DB中间件必然会带来性能的损耗,但是跟旧版的MySQL Proxy比起来,MySQL Router性能提升效果还是十分明显的,差不多已经可以媲美LVS!

转载请注明出处:架构之美

分享给朋友:
您可能感兴趣的文章:
随机阅读: