我有一个由 5 个成员组成的副本集:服务器 1 上的主 + 仲裁器,服务器 2 上的辅助 + 仲裁器,服务器 3 上的隐藏辅助(备份节点)。如果一台服务器出现故障或暂时失去连接,我希望此配置能够工作。
但是,当服务器 2 关闭时(具有辅助 + 仲裁节点的服务器),我遇到了一个奇怪的问题。从 PHP 到副本集的任何连接都需要一分钟多的时间。我尝试修改连接字符串以从中排除已关闭的服务器(辅助节点),但它没有帮助。
同时通过 mongo 控制台连接工作得很好。主节点仍然是主节点。PHP 错误日志不包含任何错误。
唯一有帮助的是从副本集中删除服务器上的节点。
但是,我现在担心配置的故障转移。正如我现在意识到的那样,如果具有辅助+仲裁节点的服务器出现故障,整个配置将停止正常工作。有什么办法可以避免吗?无论辅助+仲裁服务器是否可用,我都需要 PHP 客户端能够连接到主服务器。如何做到这一点?
mongo PHP客户端库版本为1.6.x,服务器版本为3.0。