Доступ к службе WCF для избыточности (аварийное переключение) - PullRequest
1 голос
/ 21 марта 2012

Я ищу правильный способ создания избыточности для службы WCF.Я думаю, что я пытаюсь решить проблему "инфраструктуры" в коде.Я не слишком разбираюсь в балансировщике нагрузки, но похоже, что именно для этого должны быть что-то вроде маршрутизаторов.

// Cycle through the list of service.
foreach (var uri in InfrastructureInformation.ServiceUris)
{
    try
    {
        using (var client = WcfClientFactory.Create<ServiceClient>(uri))
        {
            // Do stuff here.
        }
    }
    catch
    {
        // todo: Do not catch "exception" here. We have to find a better way of doing this.
        // Try the next URI.
    }
}

Похоже, должен быть способ иметь один URI, который я мог бы использовать для некоторых«Балансировщик» будет передавать доступную услугу.Если один сервис отключается на техническое обслуживание, то балансировщик просто не будет запрашивать этот сервис.

Теперь я знаю о маршрутизации WCF и хорошо подумал, что это ответ.Просто установите маршрутизатор WCF и раздайте ему соединение, но что произойдет, если он упадет?Разве это не дает вам единой точки отказа?Я ищу что-то более индустриальное.

Ответы [ 2 ]

1 голос
/ 21 марта 2012

WCF в .NET 4.0 имеет возможность маршрутизации, которую можно использовать в сценарии отработки отказа, как вы описали.Этот пример WCF показывает, как встроенный класс RoutingService может использоваться для этой цели.

0 голосов
/ 21 марта 2012

Вы можете взглянуть на Балансировка сетевой нагрузки Microsoft (он же NLB) . Microsoft также упоминает это в контексте WCF. Есть статья на эту здесь .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...