Маршрутизация поставщика веб-услуг - PullRequest
1 голос
/ 23 августа 2011

Я ищу реализацию службы (web / windows, .net), которая поддерживает список доступных служб и может предоставить конечную точку в зависимости от характера или типа запроса. Затем запрашивающая сторона может передать фактический рабочий запрос в предоставленную конечную точку. Фактические рабочие запросы могут содержать очень большие фрагменты (от 10 МБ до и, возможно, превышающие ГБ) данных.

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

Есть ли что-нибудь, что отвечает всем требованиям? Желательно .NET / windows based?

1 Ответ

0 голосов
/ 03 сентября 2011

Вы имеете в виду, потому что запросы блокируют работу?

Do может использовать OneWay OperationContract для создания асинхронных служб, чтобы не блокировать пул запросов.

[ServiceContract]
interface IMyContract
{
   [OperationContract(IsOneWay = true)]
   void DoWork()
}

Обновление

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

Я бы сказал, что MVC Routing действительно идеально подходит для этого.Одной из возможностей, которую вы можете использовать, является функциональность «падение».На самом деле вы можете определить несколько конечных точек резервного копирования, и в случае сбоя одного из них он автоматически перейдет к следующему.Здесь есть хорошее введение в то, как это работает здесь .

Здесь также есть хорошая статья, в которой говорится о балансировке нагрузки с использованием WCF с использованием тех же принципов.Он предоставляет 2 решения для реализации Round Robin Filter , которая позволяет вам балансировать нагрузку на запросы на обслуживание (хотя в начале он говорит, что в общих чертах он отвечает, поддерживает ли он балансировку нагрузки, по причинам, связанным с реализацией).

Если вы беспокоитесь о том, что все запросы маршрутизируются через один сервер и все еще становятся узким местом, подумайте о балансировщиках веб-нагрузки.Это тот же сценарий.Нахождение посередине пересылаемых пакетов не требует большой работы, и у них нет проблем с обработкой огромных объемов трафика.Я не думаю, что это проблема ИМО.

...