Основные преимущества MSMQ

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

MSMQ – отличная часть Windows. Это, в основном, ориентированное на сообщения промежуточное программное обеспечение, которое помогает в некоторых программных архитектурах.

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

Основная проблема: что, если Service2 внезапно станет недоступным? Будут ли сообщения потеряны? Если вы используете MSMQ, это не будет: Service1 отправит сообщения в очередь, а Service2 выйдет из строя, когда он будет доступен.

MSMQ разрешит следующие распространенные проблемы:

  • временная недоступность службы: сообщения сохраняются на диске и будут отменены, когда служба снова станет доступной, поэтому никакие сообщения не будут потеряны
  • так как он полностью asynchronous, это поможет много в случае пунктуальной пиковой нагрузки : ваш Service2 не умрет под большой нагрузкой, он просто удалит и обработает сообщения, один за другим

Плюсы MSMQ против другого ориентированного на сообщения промежуточного программного обеспечения:

  • бесплатный и встроенный (поставляется с Windows)
  • свет
  • хорошая интеграция с другими продуктами Microsoft (например, есть пространство имен System.Messaging в .Net для работы с MSMQ)
  • возможности мониторинга (с использованием счетчиков perfmon: количество полученных сообщений в секунду …)
  • транзакционные очереди
  • постоянство на диске, поэтому сообщения никогда не теряются
  • ansible через сеть (удаленные очереди)