MySQL Router 对前端应用是透明的。应用程序把 MySQL Router 当作是普通的 mysql 实例,
把查询发给 MySQL Router,而 MySQL Router 会把查询结果返回给前端的应用程序。
(2)从数据库服务器故障,业务可以正常运行。由 MySQL Router 来进行自动下线不可用服
务器。程序配置不需要任何修改。
(3)主数据库故障,由 MySQL Router 来决定主从自动切换,业务可以正常访问。程序配置
不需要做任何修改。
1.1 .读写分离原理
MySQL Router 接受前端应用程序请求后,根据不同的端口来区分读写,把连接读写端口的
所有查询发往主库,把连接只读端口的 select 查询以轮询方式发往多个从库,从而实现读
写分离的目的。读写返回的结果会交给 MySQL Router,由 MySQL Router 返回给客户端的应
用程序。
1.2 MySQL Router 用途
MySQL Router 的主要用途是读写分离,主主故障自动切换,负载均衡,连接池等。
5.4.Mysql router 主主故障自动切换的坑
Mysql router 主主故障切换功能经过测试没有问题,但是有一个比较大的坑需要注意,主
库发生切换之后,从库的连接的 master 服务器地址不会发生改变,需要自己写脚本进行判
断。
mysql-router 由 于 并 发 能 力 为 500 , 所 以 官 方 推 荐 每 个 应 用 节 点 部 署 一 个
mysql-router 节点。因此也增加了部署复杂度。
应用如果多节点部署,每个应用节点应连接自己节点 mysql router。
1.3 MySQL Router 优点
(1)基于 DAL 层实现 mysql 的高可用。
(2)可以同时实现主主故障切换和读写分离。
(3)插件式架构允许用户进行额外的功能扩展。
评论