mysql route用的多吗,MySQL Route 调研

简介

MySQL Router是MySQL官方提供的一个轻量级中间件,可以在应用程序与MySQL服务器之间提供透明的路由方式。主要用以解决MySQL主从库集群的高可用、负载均衡、易扩展等问题。

官方文档

关键特性

router是一个流量转发层,其功能角色,类似于Nginx、LVS

router本身不会对请求“拆包”,所以我们无法在Router中间件上实现比如“SQL审计”、“隔离”、“限流”、“分库分表”等。但是router提供了plugin机制,你可以开发自己的plugin来扩展router的额外特性(C语言)

总结上述两点得知:

router以路由的方式,支持读写分离

router支持读、写负载均衡

router支持只读服务的健康监测

router不支持mysql server 的master、slave探测及自动切换

详细说明

从router的配置说起

[mysql@hdp2~]$more /etc/mysqlrouter.conf

[DEFAULT]

# 日志路径

logging_folder = /home/mysql/mysql-router-2.1.6/log

# 插件路径

plugin_folder = /home/mysql/mysql-router-2.1.6/lib/mysqlrouter

# 配置路径

config_folder = /home/mysql/mysql-router-2.1.6/config

# 运行时状态路径

runtime_folder = /home/mysql/mysql-router-2.1.6/run

# 数据文件路径

data_folder = /home/mysql/mysql-router-2.1.6/data

[logger]

# 日志级别

level = INFO

# 以下选项可用于路由标识的策略部分

[routing:basic_failover]

# Router地址

bind_address = 172.16.1.125

# Router端口

bind_port = 7001

# 读写模式

mode = read-write

# 目标服务器

destinations = 172.16.1.126:3306,172.16.1.127:3306

[routing:load_balance]

bind_address = 172.16.1.125

bind_port = 7002

mode = read-only

destinations = 172.16.1.126:3306,172.16.1.127:3306

[mysql@hdp2~]$

这里值得一提的是mode参数,该参数可选值为read-write、read-only,但实际作用并不是字面含义所示。

read-write模式,将采用“首个可用”算法,优先使用第一个server,当第一个server(即172.16.1.126:3306)不可达时,将会Failover到第二个server(172.16.1.127:3306),依次进行。如果都不可达,那么此端口上的请求将会被中断,此端口将不能提供服务,且此时所属的路由策略将不可用。需要注意,此算法只遍历一次列表,即逐个验证destinations中的Server,不会循环。一旦所有的Servers依次验证且不可用后,本条路由策略将不能继续服务,内置状态设定为aborted,即使此后Servers恢复上线,也不能继续对Client提供服务,因为它不会与Servers保持心跳检测。对于Router而言,直接拒绝Client连接请求,只有重启Router节点才能解决。

read-only模式:将采用“轮询”算法,依次选择Server新建连接,如果某个Server不可达,将会重试下一个Server,如果所有的Server都不可达,那么此端口上的请求将中断,即读写操作将不可用。同时Router将会持续与每个Server保持心跳探测,当恢复后重新加入Active列表,此后那些新建连接请求将可以分发给此Server。

因为Router不会对TPC拆包,所有“read-write”、“read-only”并不会干扰实际的SQL执行。严格来说,这两种mode映射两种“路由算法”:“首个可用”、“轮询”;除此之外,再无特殊含义。因此,我们只能在应用的配置文件中,分别为读、写设定不同的配置,使用不同的绑定端口。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值