Назад | Перейти на главную страницу

проверка порта - пересылка и отработка отказа

Я ищу простое отказоустойчивое решение. Если сервер 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-адрес, который перемещается между двумя узлами вашего кластера. Для этого существует множество программ:

  • lvs (ipvsadm);
  • сердцебиение;
  • пейсмейкер + коросинхронизация (имо лучшее решение).

в качестве альтернативы простое решение - использовать PING. Даже самые изощренные средства аварийного переключения используют ping для проверки подключения. так что просто выполните команду ping сценария, а затем, если ping не удается для одного, он должен переключиться на другой. ваш подход с использованием netcat тоже хорош, в этом тоже нет проблем.