1.Mysql route介绍
1.1.什么是mysql route
MySQL Router是处于应用client和dbserver之间的轻量级代理程序,它能检测,分析和转发查询到后端数据库实例,并把结果返回给client。是mysql-proxy的一个替代品。其架构图和功能如下。
(1)Router实现读写分离,程序不是直接连接数据库IP,而是固定连接到mysql router。MySQL Router对前端应用是透明的。应用程序把MySQL Router当作是普通的mysql实例,把查询发给MySQL Router,而MySQL Router会把查询结果返回给前端的应用程序。
(2)从数据库服务器故障,业务可以正常运行。由MySQL Router来进行自动下线不可用服务器。程序配置不需要任何修改。
(3)主数据库故障,由MySQL Router来决定主从自动切换,业务可以正常访问。程序配置不需要做任何修改。
1.2.读写分离原理
MySQL Router接受前端应用程序请求后,根据不同的端口来区分读写,把连接读写端口的所有查询发往主库,把连接只读端口的select查询以轮询方式发往多个从库,从而实现读写分离的目的。读写返回的结果会交给MySQL Router,由MySQL Router返回给客户端的应用程序。
1.3.Mysql router用途
MySQL Router的主要用途是读写分离,主主故障自动切换,负载均衡,连接池等。
1.4.Mysql router主主故障自动切换的坑
Mysql router主主故障切换功能经过测试没有问题,但是有一个比较大的坑需要注意,具体是什么坑和解决方法在文章末尾,因为你之前要是没用接触过mysql router估计以我的表达能力,说了你就晕了。
2.mysql router实验架构介绍
实验环境架构图如下:
主机名
IP地址
操作系统
功能说明
c7-node1.fblinux.com
192.168.100.10
Centos 7.2 64位
Mysql route节点,读