mysql router失败了6_MySQL8.0 常见问题——MySQL Router篇

0f241f822e2bf58770a4bc69ad5c199e.png

1,MySQL Router 是什么?

MySQL Router 是一款轻量级的中间件,是构建MySQL高可用性(HA)解决方案的一部分。可以将客户端的连接智能路由到MySQL服务器,以此简化应用程序开发,从而提高性能和可靠性。MySQL Router是为了配合 InnoDB Cluster而打造的一款产品。当客户端的应用程序需要处理故障转移时,它们需要了解InnoDB Cluster的拓扑,并且需要知道哪个MySQL实例是主实例。虽然应用程序可以实现这种逻辑,但是MySQL Router可以提供这种功能。

2,MySQL Router 是如何知道InnoDB Cluster的拓扑?

MySQL Router保存在线MySQL服务器的缓存列表(配置的InnoDB集群的拓扑和状态)。当MySQL Router初次启动时,列表从路由器的配置文件加载。

为了保持缓存内容更新,MySQL Router会开启一个连接,用于从InnoDB Cluster中一台服务器的Performance Schema里面查询元数据和实时状态。当集群发生变化时(例如,服务器宕机),元数据也会实时发生变化。当MySQL Router 检测到无法连接服务器时,MySQL Router会选择缓存列表里一台新的服务器进行连接。

3,连接是如何被路由的?

使用MySQL Router后,应用程序将不会像以往一样直接连接MySQL数据库,而是需要连接MySQL Router,重新定向到可用的MySQL服务器。当连接失败后,应用程序需要设计为能够发起重新连接。换句话说,如果从MySQL Router到MySQL服务器的连接被中断,应用程序将遇到连接失败。但是一个新的连接尝试会触发Router找到并连接到另一个MySQL服务器。

4,MySQL Router的工作流程有哪些?

a.MySQL客户端或连接器连接到MySQL Router。

b.Router检查可用的MySQL服务器。

c.Router打开到适当MySQL服务器的连接。

d.Router在应用程序和MySQL服务器之间转发数据包

e.如果连接的MySQL服务器失败,Router将断开应用程序的连接。应用程序可以重试连接到Router,Router将选择另外一个可用的MySQL服务器。

5,MySQL Router应该部署在哪里?

推荐将MySQL Router与应用程序部署在一起,理由是应用程序通过MySQL连接器(JDBC,ODBC等)连接MySQL Router时,如果是部署在本地的Linux服务器上面,可以使用sockets通信,如果部署在不同服务器上还需要多一次的网络连接。

6,可以在同一个系统上部署多个MySQL Router实例吗?

可以,通过--directory dir_path指定路径,可以在同一个系统上部署多个MySQL Router。

7,MySQL Router会检查数据包吗?

不会。

8,使用MySQL Router会影响性能吗?

会有影响。无论采用哪种中间件,都会产生一定的开销,并受到工作负载的严重影响。8.0版本的性能测试显示,简单的重定向连接路由,与直接连接的速度相差约1%。

9,MySQL Router可以绑定多个IP地址吗?

不可以。bind_address只能绑定一个IP地址,但是使用bind_addres = 0.0.0.0可以接受本机的所有端口。

10,MySQL Router可以支持多少个并发连接?

早期版本限制在500个连接,2.1.5或8.0.4之后的版本可以超过5000,取决于操作系统的poll()限制。

11,MySQL Router的版本 2.1.X 和8.X有什么区别?

MySQL Router 2.1支持MySQL InnoDB Cluster,并增加了一些新特性,

MySQL Router 8.0扩展了MySQL Router2.1,但是版本号与MySQL服务器一致。换句话说,Router 2.1.5 被 8.0.3替换了(连同MySQL服务器8.0.3)。这两个分支完全兼容。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值