Подходит ли NServiceBus для общих и специфических клиентских уведомлений? - PullRequest
1 голос
/ 21 марта 2010

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

Подходит ли NServiceBus для такого сценария? Если я использую MSMQ для транспорта, значит ли это, что для каждого ПК, на котором установлен клиент, требуется очередь?

1 Ответ

4 голосов
/ 23 марта 2010

Некоторые проблемы включают в себя то, как вы хотите, чтобы издатель вел себя, когда данный подписывающийся клиент не работает - хотите ли вы, чтобы это сообщение было доступно, когда подписчик возвращается? Если это так, то между ними необходим какой-то длительный обмен сообщениями - например, MSMQ.

Ваш вопрос об уведомлении одного клиента, является ли это результатом запроса, отправленного этим клиентом? Если это так, то стандартные вызовы NServiceBus в форме Bus.Reply сделают это за вас. При использовании WCF, если ответ должен быть асинхронным, вам необходимо использовать контракты обратного вызова.

NServiceBus может делать все, что вы описали, и имеет возможность автоматически устанавливать MSMQ и создавать очереди, что значительно упрощает развертывание на стороне клиента.

У вас также есть возможность с NServiceBus выставлять сообщения через WCF, чтобы вы могли поддерживать клиентов, не являющихся NServiceBus, если вам это необходимо. Он также имеет собственный http-шлюз и схемы XSD, которые позволяют клиентам на платформах, отличных от Windows, взаимодействовать даже без использования WCF.

Надеюсь, что отвечает на ваши вопросы.

...