mysqli 连接不适用于循环 dns

mysqli connection not working with round robin dns

我正在尝试使用相同的 DNS 设置循环 MySQL 服务器(主-主)。 一切正常,即使我停止了任何 mysql-server。 问题是当其中一个 mysql-server 关闭时,php mysqli 连接不再工作,30 秒后自动终止。

知道为什么会这样吗? 我能做什么?

循环 DNS 只有在您的每个端点都工作时才有可能。禁用其中一台服务器将导致服务随机失败。不能保证重试会给你一个不同的服务器,一些操作系统强烈支持第一个条目,无论返回 IP 的随机顺序如何。

您需要的是一个负载平衡的 TCP 代理,它可以在池中添加或删除服务器。 HAProxy 之类的内容是一个不错的起点,但您可能会发现 MySQL 更具体的内容更适合您的需求。

循环 DNS 是最糟糕的数据库集群方式。不惜一切代价避免它。