Я ищу простое отказоустойчивое решение. Если сервер 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. Если он не работает, перенаправьте запрос на порт 6379 из 91.
Я ищу простое решение, которое сможет понять каждый. Если такой возможности нет, предложите программное обеспечение для той же цели.
Я предлагаю вам не использовать самодельные сценарии высокой доступности. Они ненадежны, о них можно забыть, они не спасают от расщепленный мозг ситуация.
В вашем случае вы должны использовать виртуальный IP-адрес, который перемещается между двумя узлами вашего кластера. Для этого существует множество программ:
в качестве альтернативы простое решение - использовать PING. Даже самые изощренные средства аварийного переключения используют ping для проверки подключения. так что просто выполните команду ping сценария, а затем, если ping не удается для одного, он должен переключиться на другой. ваш подход с использованием netcat тоже хорош, в этом тоже нет проблем.