Высокая доступность

Есть ли способ настроить службу WCF с конечной точкой аварийного переключения, если основная конечная точка умирает? Это похоже на возможность указать сервер аварийного переключения в кластере SQL.

В частности, я использую привязку TCP / IP для скорости, но в редких случаях, когда машина недоступна, я хотел бы перенаправить трафик на сервер аварийного переключения. Не слишком беспокоился о потере сообщений. Я просто предпочел бы не писать код для обработки перенаправления.

Ответов (4)

Решение

Вам необходимо использовать балансировщик нагрузки уровня 4 перед двумя конечными точками. Лучше всего использовать специальное оборудование.

Еще не сделали этого с WCF, но планируете иметь локальную запись DNS, указывающую на наш виртуальный iP-адрес балансировки сетевой нагрузки (NLB), который будет направлять весь трафик на один из наших серверов, на которых размещены службы в IIS. Я использовал NLB для этого точного сценария в прошлом для веб-сайтов и не вижу причин, по которым он не будет хорошо работать с WCF.

Прелесть этого заключается в том, что вы можете по желанию подключать серверы к виртуальному кластеру и из него, а NLB позаботится обо всех уродливых перенаправлениях на доступный узел. Он также имеет отличную цену: БЕСПЛАТНО с лицензией Windows Server.

Нам повезло с BigIP в качестве решения, хотя это не дешево и не легко установить.

Одна приятная особенность - это возможность настроить сертификат SSL (и бэкдор для ЦС) на общей конечной точке балансировщика нагрузки. Затем вы можете использовать протоколы для передачи запросов обратно на серверы WCF, чтобы вся передача была зашифрована.

Не пытаясь казаться слишком расплывчатым, но я думаю, что балансировка сетевой нагрузки Windows (NLB) должна справиться с этим за вас.