MSMQ - отличная часть Windows. Это в основном промежуточное ПО, ориентированное на сообщения , которое очень помогает в некоторых архитектурах программного обеспечения.
В основном это относится к общему случаю асинхронной обработки сообщений: у вас есть служба Service1
, которая связывается (отправляет сообщения) с другой частью вашей программной архитектуры, скажем, Service2
.
Основная проблема: что, если Service2
внезапно станет недоступным? Будут ли сообщения потеряны?
Если вы используете MSMQ, он не будет: Service1
будет отправлять сообщения в очередь, а Service2
отключится, когда он станет доступным.
MSMQ решит следующие распространенные проблемы:
- временная недоступность службы: сообщения сохраняются на диске и будут заблокированы, когда служба снова станет доступной, поэтому сообщения не будут потеряны
- , поскольку он полностью асинхронный, он очень поможет в случае пунктуальной пиковой нагрузки : ваш
Service2
не умрет при большой нагрузке, он просто удалит из очереди и обработает сообщения, один после одного
Плюсы MSMQ против другого промежуточного программного обеспечения, ориентированного на сообщения:
- бесплатно и встроенный (поставляется с Windows)
- свет
- хорошая интеграция с другими продуктами Microsoft (например, в .Net имеется пространство имен
System.Messaging
для работы с MSMQ)
- возможности мониторинга (с использованием счетчиков perfmon: количество полученных сообщений в секунду ...)
- транзакционные очереди
- постоянство на диске, поэтому сообщения никогда не теряются
- доступно через сеть (удаленные очереди)