У кого-нибудь есть какая-нибудь архитектурная информация для MSMQ? - PullRequest
2 голосов
/ 09 октября 2009

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

Я не могу найти ничего, кроме обычного разговора с MS о том, что это величайшая вещь, решение всех ваших проблем и т. Д. И т. П. Было бы очень полезно, если бы я мог найти некоторую информацию, которая находилась где-то между маркетинговым пухом и API - например, схема архитектуры компонентов и то, как они интегрируются друг с другом, и, что более важно, как я интегрируюсь с ними.

Вероятно, я просто искал информацию в неправильных местах, поэтому, если бы кто-то мог указать мне правильное направление, я был бы признателен за это.

Ответы [ 3 ]

3 голосов
/ 09 октября 2009

Типичная архитектура MSMQ будет состоять из 3 частей ...

  • Очередь сообщений - это будет на одном из ваших серверов. Вам нужно будет установить биты MSMQ и создать свою очередь.
  • Клиент - Ваш клиент будет вставлять сообщения в очередь. Я предполагаю, что вы используете .NET. Если это так, большая часть того, что вы хотите, будет расположена в пространстве имен System.Messaging.
  • Служба Windows - она ​​также будет работать на сервере, вероятно, на том же сервере, что и ваша очередь. Его задачей было бы наблюдать за очередью, обрабатывать сообщения по мере их поступления, следить за тем, чтобы внешняя служба была доступна, и, вероятно, вести некоторую регистрацию.

Вот статья , которая должна быть немного подробнее и дать вам несколько примеров кода.

1 голос
/ 09 октября 2009

MSMQ - это реализация очереди сообщений, как и websphere mq, и множество других систем. Рассматривая концепции и архитектуру высокого уровня, я бы посоветовал ознакомиться с очередями сообщений и их применением в автономных сценариях. Я настоятельно рекомендую Шаблоны корпоративной архитектуры приложений . Для конкретных примеров по msmq посмотрите Pro MSMQ: Программирование очереди сообщений Microsoft , оно не содержит много специальной информации, но группирует его лучше, чем большинство ресурсов, доступных в Интернете. Эта Hello World с MSMQ статья даст вам хороший обзор того, что это влечет за собой, и ее легко выполнить в системе разработки.

0 голосов
/ 13 октября 2009

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

Существуют платформы для .NET, которые могут сделать это намного проще (например, MassTransit или NServiceBus).

Вы также можете проверить шаблоны SOA (Арнон Ротем-Гал-Оз, Мэннинг Пресс, в MEAP) и шаблоны интеграции предприятий (Hohpe, Woolf), последний из которых является обязательным для чтения для всех, кто строит сообщения на основе сообщений. система.

...