Существуют ли открытые стандарты для отработки отказа сервера?
-
05-07-2019 - |
Вопрос
Я создаю клиент-серверное приложение и смотрю, как добавить отработку отказа клиенту, чтобы при отключении сервера он пытался подключиться к другому доступному серверу. Существуют ли какие-либо стандарты или спецификации, относящиеся к отказоустойчивости сервера? Я предпочел бы принять существующий стандарт, чем реализовывать свой собственный механизм.
Решение
Я не существует, или должен быть любым. Это довольно просто, и все зависит от того, как вы можете подключиться к своему серверу, но в основном вам нужно продолжать посылать запросы ping / keepalives / heartbeats как угодно, и когда возникает сбой (или n терпит неудачу подряд, если вы хочу) поменяй переключатель в своем конфиге. Р>
Как правило, вышеперечисленное будет работать в качестве отдельной службы на клиентском компьютере. В качестве альтернативы, вы можете создать обработчик выполнения метода, который будет обрабатывать выполнение всех вызовов сервера, которые вы делаете, и в случае сбоя связи, в вашем блоке 'catch', переключите ваш переключатель в конфигурации
Другие советы
Ваш вопрос очень общий. Вот несколько общих ответов: Google для отказоустойчивых вычислений
Обычно это выполняется на уровне балансировки нагрузки или на уровне сервера. Это не то, что вы обычно делаете в коде на клиенте.
Как правило, у вас есть несколько серверов, каждый из которых имеет свой собственный IP + один, который используется совместно всеми ними. Кроме того, они связываются друг с другом по протоколу tcp, чтобы сердцебиение узнало, какой узел является активным в активном / пассивном кластере.
Я не могу сказать, какой тип серверов у вас есть, но большинство серверов Windows могут делать это изначально. Р>
Вы можете задать вопрос на сервере, чтобы узнать, как правильно настроить серверы для поддержки этого.