Как автоматически переключаться на другой веб-сервис?
У меня есть готовое стороннее приложение для Windows, которое должно подключаться к веб-службе (IP-адрес или URL), установленной на другом сервере (фактически работающем в Windows 7 Professional).
Мой пользователь хочет, чтобы я внедрил отказоустойчивое решение, в котором, если основной веб-сервер не отвечает, стороннее приложение автоматически подключается к резервному серверу.
Есть ли способ для меня реализовать это без реализации кластеризации (аппаратное обеспечение или Windows NLB)?
Обновление: обратите внимание - я не хочу реализовывать балансировщик нагрузки на стороне сервера.
3 ответа
Вы могли бы реализовать reverse proxy
на client
который затем подключается к вашему backend servers
, Это должно быть в состоянии перенаправить на рабочий сервер, когда один выходит из строя.
Конечно, Windows NLB
и hardware loadbalancers
(например, http://www.loadbalancer.org/) предназначены для этой работы.
Существуют бесплатные альтернативы, в основном использующие Linux/Unix, которые вы можете найти там.
Есть ли способ для меня реализовать это без реализации кластеризации
Нет, и ваш вопрос снят, потому что он хочет сказать: "Мне нужно сменить резину на Мерседес". Это машина. Аварийное переключение веб-службы не является чем-то особенным, мы говорим здесь о TCP-соединениях.
Проблема заключается в том, что для аварийного переключения машина, реагирующая на определенный IP-адрес, должна измениться - без изменения IP-адреса (поскольку поиск DNS, который может вызвать его, кэшируется, если что-то происходит на клиентском компьютере, и аварийное переключение должно происходить быстро, поэтому кеш мешает).
Итак, вам нужно какое-то решение для кластеризации. Это присуще проблеме. Что ВСЕГДА программное обеспечение - НИКОГДА не аппаратное обеспечение, не существует оборудования, которое делает это. Видишь, устройства, которые ты покупаешь, тоже запускают софт;)
NLB идеально подходит для этого. "Кластер" машин имеет специальный IP-адрес, который все они реагируют на эти сервисы веб-службы, и у них есть достойный механизм отработки отказа.
Извините, никак не обойтись. Существует аварийное переключение с "бедного человека" (обновления DNS), но, как я уже сказал, у него есть проблемы с синхронизацией и с кэшем на стороне клиента.