高可用性环境下切换DNS的问题



当我使用DNS server + redis/mysql master/slave作为HA部署时,我发现有两个问题:

  1. redis/mysql主服务器故障时,我将从服务器提升为新主服务器(redissentinel, mysqlmha),域名更改可能由于存在DNS缓存而延迟,但我们可以减少DNS ttl或关闭nscd服务

  2. 长活连接可能会一直连接到旧主机(如果连接没有重新连接),这会导致问题。

我的想法:

在将域名更改为新的主ip地址后,我们需要杀死所有现有的连接(客户端将重新连接并连接到新的主ip地址)或关闭原主ip地址

有更好的方法吗?

如果两个节点在同一个数据中心,您可以使用VIP(虚拟IP),然后使用corosync将VIP移动到主服务器,这几乎是"瞬时"的故障转移。

如果节点在两个不同的数据中心,我认为你可以使用ProxySQL,但我还没有测试过ProxySQL。

最新更新