comprobación de puertos y reenvío

Estoy buscando la solución simple de fail-over. Si el server 92 está inactivo, la aplicación debe apuntar al server 91. Puedo comprobar la conectividad scripting las órdenes siguientes.

[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 

Quería saber si hay una mejor manera de hacer esto. ¿Puedo alojar mi script en el server 92 y comprobar si el puerto local 6379 está funcionando? Si está hacia abajo, envíe la request al puerto 6379 de 91.

Estoy buscando la solución simple que cualquier persona puede entender y manejar. Si no hay tal opción disponible, por favor sugiera los softwares para el mismo propósito.

Sugiero que no utilice self-made-high-availability-scripts. No son confiables, puede olvidarse de ellos, no te salvan de la situación de cerebro partido .

En su caso, debe utilizar la IP virtual, que se mueve a través de dos nodos de su clúster. Hay un montón de software para este propósito:

  • lvs (ipvsadm);
  • latido del corazón;
  • marcapasos + corosync (imo la mejor solución).

alternativamente, la solución simple es usar un PING. Incluso los fail-overs más sofisticados utilizan ping para verificar la conectividad. por lo que sólo script ping command, a continuación, si ping falla por uno, debe cambiar a otro. su enfoque utilizando netcat también está bien, no hay problema en eso también.