Отказоустойчивость в архитектуре клиент-сервер - PullRequest
0 голосов
/ 14 мая 2011

У меня есть java-сервер, который обслуживает множество клиентов, использующих сокеты. В случае сбоя основного сервера я хотел, чтобы резервный сервер автоматически занял место.Что я сделал, я поместил IP-адрес и порт сервера резервного копирования на стороне клиента, и по истечении времени ожидания я просто подключаюсь к серверу резервного копирования.Это правильное решение, или я должен поместить координаты сервера резервного копирования на стороне сервера и передать его клиенту при подключении?

Спасибо

Ответы [ 2 ]

1 голос
/ 15 мая 2011

Если сервер отправляет резервный адрес клиенту, это хорошая идея, проще централизованно администрировать эти данные.

Однако адреса резервного сервера должны быть в файле свойств на клиенте (илив базе данных центральной конфигурации, читаемой клиентами и серверами), в противном случае он не может найти резервную копию при запуске, когда основной не работает.

1 голос
/ 15 мая 2011

Полагаю, было бы более надежно хранить информацию о сервере резервного копирования - таким образом, это было бы намного проще изменить.И если клиент переключился на резервное копирование, резервное копирование может сообщить, где это резервное копирование.

Это также можно выполнить с помощью аппаратного балансировщика нагрузки, хотя это работает многолегче с протоколами без установления соединения.Однако, конечно, проще использовать аппаратное обеспечение, которое позволяет машине резервного копирования автоматически включаться при выходе из строя основного сервера.

...