MySQL Router 功能学习研究(一)

#MySQL Router

###简介
MySQL Router最早是作为MySQL-Proxy的替代方案出现的。
作为一个轻量级中间件,MySQL Router可在应用程序和后端MySQL服务器之间提供透明路由和负载均衡,从而有效提高MySQL数据库服务的高可用性与可伸缩行。


###功能介绍
####透明路由
MySQL Router通过智能地将客户端连接路由到MySQL服务器。
MySQL使用组复制在多个服务器之间复制数据,当服务器发生故障时执行自动故障转移,基于paxos协议在剩余实例中选举一个新的主库。
!!!如果应用程序直连主库,当发生主库切换时可用的数据库IP地址发生变化,客户端应用程序必须自行修改它的连接配置。这种方案极不现实,因为需要应用程序了解组复制的拓扑结构并知道哪个MySQL实例是主库,对于应用程序显然是强人所难。
So, MySQL Router有了用武之地,当与InnoDB Cluster一起使用时,MySQL Router充当代理,向应用程序隐藏网络上的多个MySQL实例,并将数据请求映射到其中一个集群实例。只要有足够的在线副本并且组件之间的通信完好无损,客户端就能够连接其中一个实例,保持对外服务的连续性。应用程序要做的只是连接到Router,而不是直连MySQL数据库实例,其它的交给Router处理即可。


####元数据缓存
(MySQL Router处于应用程序和MySQL服务器之间)当应用程序连接到Router时,Router从其候选池中选择合适的MySQL服务器连接,此后Router转发应用程序和MySQL之间的所有往返网络流量。
MySQL Router保留在线MySQL服务器的缓存列表,或配置的InnoDB Cluster的拓扑和状态。
Router启动时,列表从Router的配置文件加载。
当Router检测到连接的MySQL服务器关闭时,它会尝试连接到不同的MySQL服务器以从新的服务器获取元数据和InnoDB Cluster状态。关闭的MySQL服务器的应用程序连接会自动关闭。应用程序必须重新连接到Router,这要求应用程序实现重连机制。Router将它们重定向到在线MySQL服务器。


####简单重定向
Router将MySQL连接重定向到可用的MySQL服务器。
如果连接失败,应用程序须要重试连接,MySQL Router在尝试连接失败后选择新的MySQL服务器。这被称为简单重定向连接路由,因为它需要应用程序重试连接。
!!!如果从MySQL Router到MySQL服务器的连接中断,则应用程序会遇到连接失败,但新的连接尝试会触发Router查找并连接到另一台MySQL服务器。
路由连接的服务器和路由策略在配置文件中定义。
!!!MySQL Router在尝试连接时只是单纯重定向,并不读取数据包或执行分析,所以应用程序需要捕获连接错误并重试连接到Router。


###使用MySQL Router的工作流程
- MySQL客户端连接到MySQL Router
- Router检查可用的MySQL服务器
- Router打开一个适用MySQL服务器的连接
- Router在应用程序和MySQL服务器之间来回转发数据包
- 如果连接的MySQL服务器出现故障, Router将断开连接。当应用程序重试连接到Router时,Router选择另一个可用MySQL服务器
#####每当在网络中引入通信组件时,都会产生一定的开销,并且会受到工作负载的严重影响。幸运的是,MySQL Router的性能影响非常小。


###MySQL Router 8.0 的新特性
- (1)添加了可选的routing_strategy配置选项。可用值为first-available、next-available、round-robin和round-robin-with-fallback。以前版本中,这些策略对应mode选项中的调度模式,其中read-write对应first-available,而read-only对应round-robin。它们保留了这些模式的先前行为;
-(2)添加了connect_timeout和read_timeout元数据配置文件选项。它们在[DEFAULT]命名空间下定义,并影响元数据服务器连接等内部操作;
-(3)8.0.22版本已经实现最大并发客户端连接数从500增加到50000。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值