gpt4 book ai didi

MySQL 代理 HA,节点故障后无需重新连接

转载 作者:行者123 更新时间:2023-11-29 14:11:45 29 4
gpt4 key购买 nike

我使用 MySQL 和 Galera wsrep 来获得同步复制,该部分已启动并运行

我需要设置一种代理来处理客户端连接。由于集群中的任何节点都可能发生故障,因此客户端不会直接连接节点,而只能通过代理连接。

目前我使用 Galera 负载均衡器,它确实有效,但有一个异常(exception):如果一个节点发生故障,所有通过代理连接到该节点的客户端都会出现连接错误并需要重新连接。

我无法控制连接到代理的服务器应用程序,其中一些应用程序无法自动重新连接,需要手动重新启动。那么问题是如何强制代理自动将已连接的应用程序重定向到新的数据节点,而不需要重新连接?

最佳答案

实际上有两个问题:

  1. glbd 会将大多数(不是全部)新连接发送到故障节点,因为默认情况下它使用“最少连接”平衡策略,并且如果该节点接受 TCP 连接,那么它将是它,因为连接将是短暂的,并且它会从 glbd 的角度来看,加载最少。所以只有当节点崩溃时它才起作用。使用循环平衡策略,以确保最终应用程序连接到工作服务器或使用glb-1.0.0beta,它可以使用mysql客户端轮询服务器状态并做出更明智的决策。
  2. 一般来说,在不重新连接和重新身份验证的情况下迁移客户端连接几乎是不可能的,因为即使代理代表应用程序与服务器重新连接并重新进行身份验证(这意味着代理可以像 mysqld 一样对客户端进行身份验证) ,或者它可以监视并重放与服务器的客户端身份验证握手(这甚至更不可能)) - 即使毕竟几乎不可能重新创建应用程序在崩溃的服务器上具有的相同 session 上下文(因此它不会注意重新连接)

关于MySQL 代理 HA,节点故障后无需重新连接,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13401866/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com