端口检查和故障转移

我正在寻找简单的故障转移解决scheme。 如果92服务器closures,应用程序应该指向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服务器上托pipe我的脚本,并检查本地端口是否正常工作。 如果发送失败,请将请求转发到91的6379端口。

我正在寻找任何人都可以理解和pipe理的简单解决scheme。 如果没有这样的选项,请为相同的目的build议软件。

我build议你不要使用自制的高可用性脚本。 他们是不可靠的,你可以忘记他们,他们不救你从分裂的情况。

在你的情况下,你应该使用虚拟IP,跨群集的两个节点。 有很多软件用于这个目的:

  • lvs(ipvsadm);
  • 心跳;
  • 起搏器+ corosync(最好的解决scheme)。

或者,简单的解决scheme是使用PING。 即使是最复杂的故障切换也使用ping来检查连通性。 所以只需脚本ping命令,那么如果ping失败,应该切换到另一个。 你使用netcat的方法也很好,也没有问题。