我正在寻找简单的故障转移解决方案。如果 92 服务器发生故障,应用程序应指向 91 服务器。我可以通过编写以下命令来检查连接性。
[root@sserver shantanu]# nc -z 10.10.10.92 6379 > /dev/null;
[root@server shantanu]# echo $?
1
[root@server shantanu]# nc -z 10.10.10.91 6379 > /dev/null;
[root@server shantanu]# echo $?
0
我想知道是否有更好的方法可以做到这一点。我可以在 92 服务器上托管我的脚本并检查 6379 本地端口是否正常工作。如果它关闭,请将请求转发到 91 的 6379 端口。
我正在寻找任何人都能理解和管理的简单解决方案。如果没有这样的选项,请推荐用于相同目的的软件。
答案1
我建议你不要使用自制的高可用性脚本。它们不可靠,你可以忘记它们,它们不会拯救你裂脑情况。
在您的案例中,您应该使用虚拟 IP,该 IP 跨集群的两个节点移动。有很多软件可用于此目的:
- lvs(ipvsadm);
- 心跳;
- pacemaker+corosync(我认为是最好的解决方案)。
答案2
或者,简单的解决方案是使用 PING。即使最复杂的故障转移也使用 ping 来检查连接性。因此,只需编写 ping 命令脚本,然后如果 ping 一个失败,它应该切换到另一个。您使用 netcat 的方法也很好,也没有问题。