2012-11-15 54 views
0

我使用MySQL加莱拉wsrep得到同步复制后重新连接,这一部分它的启动和运行MySQL代理HA无需节点故障

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

目前我使用Galera负载平衡器,它可以工作,但有一个例外: 如果一个节点发生故障,所有通过代理连接到该节点的客户端都会出现连接错误并需要重新连接。

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

回答

1

有2个问题实际上是:

  1. GLBD发送大部分(不是全部),因为默认情况下它使用“最少连接”平衡策略和故障节点的新连接,如果节点接受的TCP连接,然后将其将它自连接将是短暂的,它会具有至少但从GLBD点加载。所以它只适用于节点崩溃的情况。使用循环平衡策略,以确保最终的应用程序会连接到一个工作的服务器或使用GLB-1.0.0beta可使用mysql客户端轮询服务器状态并做出更明智的决策。
  2. 一般来说,几乎是不可能迁移的客户端连接,而无需重新连接并重新验证,因为即使代理代表应用程序(这意味着代理可以验证客户端以同样的方式的mysqld做的重新连接并重新验证与服务器,或者它可以窥视并与服务器重放客户端认证握手(这甚至不太可能)) - 即使毕竟,这几乎是不可能重现的应用程序有崩溃的服务器在同一会话上下文(所以也没有注意重新连接)