Служба очереди сообщений (также известная как MSMQ) представляет собой инфраструктуру для работы с сообщениями и средство разработки для создания распределенных приложений, использующих механизм обмена сообщениями, для Microsoft Windows. Приложения, разработанные для службы очереди сообщений, отправляют сообщения в очереди, представляющие собой временные хранилища, из которых сообщения доставляются в места их назначения при соблюдении соответствующих условий. Такие приложения могут взаимодействовать друг с другом через гетерогенные сети и позволять обмениваться сообщениями между компьютерами, которые могут быть временно недоступны друг для друга. Служба очереди сообщений предоставляет следующие преимущества:

Программные продукты, которые обладают данными свойствами, часто имеют следующие названия:

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

В этом разделе описаны компоненты, доступные вместе со службой очереди сообщений.

Сервер очереди сообщений

Этот компонент является ключевым для службы очереди сообщениями, который позволяет выполнять основные функции очереди сообщений. Дополнительные сведения о компоненте сервера очереди сообщений см. в статье «Что такое очередь сообщений» (http://go.microsoft.com/fwlink/?LinkId=93512 (возможно, на английском языке)).

Интеграция служб каталогов

Позволяет публиковать свойства очереди в Active Directory, включает стандартную проверку подлинности и шифрование сообщений с использованием сертификатов, зарегистрированных в Active Directory, а также маршрутизацию сообщений между сайтами. Дополнительные сведения о компоненте интеграции службы каталогов см. в статье «Компонент интеграции службы каталогов» (http://go.microsoft.com/fwlink/?LinkId=93513 (возможно, на английском языке)).

Триггеры очереди сообщений

Позволяет выполнять вызов компонентов COM или исполняемых файлов в зависимости от фильтров, установленных для входящих сообщений выбранной очереди. Дополнительные сведения о компоненте триггеров очереди сообщений см. в статье «Обзор триггеров» (http://go.microsoft.com/fwlink/?LinkId=93514 (возможно, на английском языке)).

Поддержка HTTP

С использованием этого компонента разрешается отправка и получение сообщений через протокол HTTP. Дополнительные сведения о компоненте поддержки HTTP см. в статье «Обмен сообщениями в сети Интернет» (http://go.microsoft.com/fwlink/?LinkId=93515 (возможно, на английском языке)).

Поддержка многоадресной рассылки

С помощью этого компонента включается возможность помещения в очередь и отправки многоадресных сообщений на IP-адрес многоадресной рассылки. Дополнительные сведения о компоненте поддержки многоадресной рассылки см. в статье «Многоадресная IP-рассылка» (http://go.microsoft.com/fwlink/?LinkId=93516 (возможно, на английском языке)).

Служба маршрутизации

Этот компонент маршрутизирует сообщения как между различными веб-сайтами, так и в пределах одного веб-сайта. Дополнительные сведения о компоненте службы маршрутизации см. в статье «Маршрутизация очереди сообщений» (http://go.microsoft.com/fwlink/?LinkId=93517 (возможно, на английском языке)).

DCOM-прокси очереди сообщений

Этот компонент позволяет интерфейсу API DCOM MSMQ подключаться к удаленному серверу очереди сообщений.

Подочереди

Этот компонент позволяет логически группировать сообщения в очереди без создания дополнительной физической очереди. Подочереди представляют собой неявным образом создаваемые локальные очереди, которые являются логическими разделами физической очереди. Приложения могут использовать подочереди для группирования сообщений.

Перемещение сообщений

Перемещать сообщения можно одним из трех способов:

  • с помощью диалогового окна Перемещение сообщения;

  • используя операцию копирования и вставки;

  • используя операцию перетаскивания с помощью мыши.

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

Сообщение перемещается в неизменном виде из исходной очереди в целевую очередь. За исключением текущего счетчика перемещений остальные свойства сообщения не изменяются.

Очереди недоставленных сообщений для каждого приложения

В службе очереди сообщений версии 4.0 введены очереди недоставленных сообщений для каждого приложения, что позволяет каждому приложению использовать собственную очередь. Каждое приложение может обратиться к собственной очереди недоставленных сообщений, используя свойство PROPID_M_DEADLETTER_QUEUE в качестве части сообщения. Вместо отправки в очередь недоставленных транзакционных сообщений системы, сообщение отправляется в очередь, заданную с помощью свойства PROPID_M_DEADLETTER_QUEUE.

Свойству PROPID_M_DEADLETTER_QUEUE можно присвоить любой допустимый путь к транзакционной очереди. Эта транзакционная очередь должна быть локальной для диспетчера очереди, который будет перемещать в очередь сообщение отрицательного подтверждения (NACK). Определение допустимого пути содержится в разделе, посвященном правилам именования путей очередей (http://go.microsoft.com/fwlink/?LinkId=69583).

Удаленное транзакционное получение

Удаленное транзакционное получение представляет собой транзакционное получение сообщения из удаленной очереди. Существуют случаи, когда необходимо использовать удаленное транзакционное получение. Например, когда исполняемые заказы из удаленной главной очереди должны быть обработаны фермой серверов приложений, удаленное транзакционное получение будет использовано для обработки сообщений с целью балансировки нагрузки в указанной ферме серверов.

Возможность обработки большого количества очередей сообщений

В службе очередей сообщений версии 5.0, появившейся в Windows 7 и Windows Server 2008 R2, появилась следующая новая возможность.

В службе очереди сообщений версии 5.0 реализованы возможности по обработке значительно большего количества очередей, чем в версии 4.0. Хотя служба очереди сообщений версии 4.0 не накладывала ограничений на количество создаваемых очередей, создание нескольких тысяч очередей отрицательно влияло на быстродействие. В частности, при загрузке большого количества очередей в память время запуска служб очереди сообщений 4.0 заметно возрастает из-за используемого алгоритма проверки очереди. Алгоритм проверки очереди, используемый при запуске службой очереди сообщений версии 5.0, был оптимизирован для существенного улучшения быстродействия запуска службы очереди сообщений при одновременном размещении в системе большого числа очередей.

Дополнительные источники информации

Возможности службы очереди сообщений (http://go.microsoft.com/fwlink/?LinkId=93518)