Очередь сообщений windows что это

Очередь сообщений Microsoft — Microsoft Message Queuing

Microsoft Message Queuing или MSMQ — это реализация очереди сообщений, разработанная Microsoft и развернутая в ее операционных системах Windows Server, начиная с Windows NT 4 и Windows 95 . Windows Server 2016 и Windows 10 также включают этот компонент. В дополнение к основной поддержке серверных платформ, MSMQ был включен в платформы Microsoft Embedded с 1999 года и с момента выпуска Windows CE 3.0.

Содержание

Обзор

MSMQ — это, по сути, протокол обмена сообщениями, который позволяет приложениям, работающим на отдельных серверах / процессах, обмениваться данными без сбоев. Очередь — это временное хранилище, из которого сообщения можно надежно отправлять и получать, когда позволяют условия. Это позволяет осуществлять обмен данными по сети и между компьютерами под управлением Windows, которые не всегда могут быть подключены. Напротив, сокеты и другие сетевые протоколы предполагают, что прямые соединения всегда существуют.

MSMQ доступен разработчикам на платформах Microsoft с 1997 года и обычно используется в корпоративном программном обеспечении, созданном с помощью Visual Studio , как в собственном воплощении до .NET (версии 5 и 6), так и в Visual Studio .NET . Microsoft также включила MSMQ в свою платформу технологии обмена сообщениями Windows Communication Foundation (WCF). В рамках WCF MSMQ может использоваться для обеспечения безопасного и надежного транспорта с унифицированной моделью программирования, совместимой с другими стандартами связи.

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

MSMQ поддерживает как долговременный, так и кратковременный обмен сообщениями, чтобы найти компромисс между производительностью или согласованностью путем записи сообщений на диск или только в ОЗУ. Кратковременный обмен сообщениями может быть достигнут только путем отправки экспресс-сообщений через нетранзакционные очереди.

MSMQ также поддерживает транзакции. Он позволяет выполнять несколько операций с несколькими очередями, причем все операции заключены в одну транзакцию, что гарантирует, что все операции или ни одна из них не вступят в силу. Координатор распределенных транзакций Microsoft (MSDTC) поддерживает транзакционный доступ к MSMQ и другим ресурсам для достижения точной транзакции после обработки.

Следующие порты используются для операций Microsoft Message Queuing:

  • TCP: 1801
  • RPC: 135, 2101 *, 2103 *, 2105 *
  • UDP: 3527, 1801
  • * Эти номера портов могут быть увеличены на 11, если первоначальный выбор порта RPC используется при инициализации очереди сообщений. Порт 135 запрашивается для обнаружения портов 2xxx.

Ссылки на версии

  • Версия 1.0 (май 1997 г.). Поддерживает Windows 95 , Windows NT 4.0 SP3, Windows 98 и Windows Me .
  • Версия 2.0, входящая в состав Windows 2000 .
    • Новые функции включают в себя: поддержку регистрации публичных очередей сообщений в Active Directory , 128-битное шифрование и поддержку цифровых сертификатов, полную поддержку COM для свойств сообщений (достижение функционального паритета с вызовами функций Win32 API , поддержка полного имени пути DNS, улучшенная производительность в мульти -потоковые приложения.
  • Версия 3.0, включенная в Windows XP (Professional, не Home Edition) и Windows Server 2003 .
    • Новые функции включают в себя: обмен сообщениями через Интернет (обращение к очередям через HTTP, сообщения в формате SOAP , поддержка MSMQ для информационных служб Интернета ), псевдонимы очередей, многоадресная рассылка сообщений и дополнительная поддержка программного обслуживания и администрирования очередей и самого MSMQ.
  • Версия 4.0, часть Windows Vista и Windows Server 2008 .
    • Новые функции включают в себя: Подочереди, улучшенную поддержку «подозрительных сообщений» (сообщения, которые постоянно не могут быть правильно обработаны получателем) и поддержку транзакционного приема сообщений из удаленной очереди.
  • Версия 5.0, часть Windows 7 и Windows Server 2008 R2 .
    • Новые функции включают: поддержку алгоритма Secure Hash Algorithm 2.0 ( SHA2 ) и всех расширенных алгоритмов хеширования, которые поддерживаются в Windows 2008 R2; по умолчанию более слабые алгоритмы хеширования отключены.
  • Версия 6.0, часть Windows 8 и Windows Server 2012 .
  • Версия 6.3, часть Windows 8.1 и Windows Server 2012 R2 .
Читайте также:  Windows 10 x64 professional kottosoft

Использует

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

Установка системы очередей сообщений (MSMQ) Installing Message Queuing (MSMQ)

В процедурах ниже показана методика установки очереди сообщений 4.0 и очереди сообщений 3.0. The following procedures show how to install Message Queuing 4.0 and Message Queuing 3.0.

Служба очереди сообщений 4,0 недоступна в Windows XP и Windows Server 2003. Message Queuing 4.0 is not available in Windows XP and Windows Server 2003.

Установка Message Queuing 4.0 в Windows Server 2008 или Windows Server 2008 R2 To install Message Queuing 4.0 on Windows Server 2008 or Windows Server 2008 R2

В диспетчер сервера щелкните компоненты. In Server Manager, click Features.

В области справа в разделе Сводка компонентов щелкните Добавить компоненты. In the right-hand pane under Features Summary, click Add Features.

В открывшемся окне разверните очередь сообщений. In the resulting window, expand Message Queuing.

Разверните узел службы очередей сообщений. Expand Message Queuing Services.

Щелкните Интеграция служб каталогов (для компьютеров, присоединенных к домену), а затем щелкните Поддержка HTTP. Click Directory Services Integration (for computers joined to a Domain), then click HTTP Support.

Нажмите кнопку Далее, а затем — установить. Click Next,then click Install.

Установка очереди сообщений 4.0 в Windows 7 или Windows Vista To install Message Queuing 4.0 on Windows 7 or Windows Vista

Откройте Панель управления. Open Control Panel.

Щелкните программы , а затем в разделе программы и компоненты щелкните Включение и отключение компонентов Windows. Click Programs and then, under Programs and Features, click Turn Windows Features on and off.

Разверните сервер очереди сообщений Microsoft (MSMQ), разверните ядро сервера очереди сообщений Microsoft (MSMQ) и затем отметьте флажками установку следующих возможностей очереди сообщений: Expand Microsoft Message Queue (MSMQ) Server, expand Microsoft Message Queue (MSMQ) Server Core, and then select the check boxes for the following Message Queuing features to install:

MSMQ Доменные службы Active Directory (для компьютеров, подключенных к домену). MSMQ Active Directory Domain Services Integration (for computers joined to a Domain).

Читайте также:  Windows parallel on macbook

Поддержка MSMQ HTTP. MSMQ HTTP Support.

Нажмите кнопку ОК. Click OK.

Если появится запрос на перезагрузку компьютера, нажмите кнопку ОК , чтобы завершить установку. If you are prompted to restart the computer, click OK to complete the installation.

Установка Message Queuing 3.0 в Windows XP или Windows Server 2003 To install Message Queuing 3.0 on Windows XP and Windows Server 2003

Откройте Панель управления. Open Control Panel.

Щелкните Добавить удалить программы , а затем — Добавить компоненты Windows. Click Add Remove Programs and then click Add Windows Components.

Выберите очередь сообщений и щелкните сведения. Select Message Queuing and click Details.

Если вы используете Windows Server 2003, выберите сервер приложений для доступа к очереди сообщений. If you are running Windows Server 2003, select Application Server to access Message Queuing.

Удостоверьтесь, что на странице сведений выбрана функция поддержки MSMQ HTTP. Ensure that the option MSMQ HTTP Support is selected on the details page.

Нажмите кнопку ОК , чтобы закрыть страницу сведения, а затем нажмите кнопку Далее. Click OK to exit the details page, and then click Next. Завершите установку. Complete the installation.

Если появится запрос на перезагрузку компьютера, нажмите кнопку ОК , чтобы завершить установку. If you are prompted to restart the computer, click OK to complete the installation.

Microsoft Message Queuing (MSMQ) – промежуточная среда обмена сообщениями

5.1. Служба обмена сообщениями MSMQ

В настоящий момент существует несколько основных разработок в области промежуточного программного обеспечения для работы с очередями сообщений. Наиболее известными разработками являются такие системы очередей сообщений , как MSMQ, Sun Java System Message Queue , IBM MQSeries , Oracle Advanced Queing. Промежуточная среда MSMQ – разработка Microsoft для асинхронной передачи сообщений внутри локальной сети, впервые появившаяся в составе операционной системы Windows NT. В настоящее время последней является версия MSMQ 3.0, включенная в Windows XP PE и 2003 Server , достаточно актуальна так же версия 2.0, включенная в состав операционной системы Windows 2000 .

Служба MSMQ позволяет произвольному набору приложений добавлять сообщения в некоторую очередь , и произвольному же набору – читать сообщения из очереди. Приложению, использующему MSMQ, доступны следующие основные операции :

  • добавить сообщение в очередь;
  • извлечь первое сообщение из очереди;
  • установить обработчик, вызываемый при появлении сообщения.

Структура сообщения определяется приложением, и может быть произвольной, с ограничением на размер одного сообщения (2Мб для MSMQ 2.0). Далее будет рассмотрено использование MSMQ 2.0/3.0 при разработке приложений с использованием . NET Framework.

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

  • сообщение доставляется сразу в указанную отправителем очередь (прямая доставка);
  • сообщение посылается в некоторую промежуточную очередь, определяемую маршрутизатором службы сообщений;
  • MSMQ определяет, что сообщение требуется разослать в несколько очередей (возможность поддерживается начиная с MSMQ 3.0).

После определения имени компьютера с очередью назначения, MSMQ проверяет доступность компьютера (пакетом UDP ) и в случае ответа сразу пытается отправить ему сообщение, повторяя попытки с интервалом по умолчанию 5 секунд. Если сообщение не удается отправить, то обычно каждые 5 минут служба сообщений пытается найти новый пункт назначения сообщения, используя маршрутизацию MSMQ. Процесс пересылки сообщения между компьютерами повторяется, пока оно не достигнет очереди назначения. С момента поступления сообщения в указанную при отправке очередь любое использующее MSMQ приложение с необходимыми правами доступа может прочитать это сообщение (рис. 5.1).

Читайте также:  Windows test if program is running

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

Благодаря службе маршрутизации сообщений возможно создание моста между MSMQ и аналогичной технологией IBM – IBM Websphere MQ (ранее MQSeries ). Websphere MQ может использоваться и напрямую программами . NET Framework, однако обычно это менее удобно, чем использование MSMQ, и может быть связано с дополнительными затратами – служба MSMQ уже входит в большинство систем семейства Windows . Использование моста MSMQ- MQSeries позволяет создавать гетерогенные распределенные системы на основе обмена сообщениями, поскольку технология IBM MQ является изначально межплатформенной.

Приложение может вести поиск нужной ему очереди по ряду критериев. Это возможно при использовании механизма общих очередей в Microsoft Message Queuing , что требует развертывания Microsoft Active Directory .

5.2. Инфраструктура, необходимая для использования MSMQ

Служба MSMQ может работать как в составе домена Active Directory , так и при отсутствии такого домена, но во втором случае невозможно использовать ряд возможностей MSMQ, а именно:

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

В MSMQ существуют два вида очередей – общие ( public ) и частные ( private ). Как частные, так и общие очереди могут либо использовать, либо не использовать транзакции, что задается при создании очереди и не может быть изменено в дальнейшем.

Информация об общих очередях публикуется в службе каталогов Active Directory . Путь к общей очереди имеет вид ComputerName\QueueName, возможна также запись пути в виде .\QueueName для очереди на локальном компьютере. Посылающее сообщение приложение может искать доступные в домене общие очереди по заданным критериям. Возможна также проверка приложением наличия общей очереди на удаленном компьютере и ее создание. Для использования общих очередей требуется развертывание MSMQ в рамках домена Active Directory .

Частные очереди доступны как при наличии домена, так и при его отсутствии. Путь к такой очереди имеет вид ComputerName\Private$\QueueName или .\Private$\QueueName для локального компьютера. Приложение , не имеет возможности ни создать, ни проверить наличие частной очереди на удаленном компьютере при использовании средств библиотеки FCL .

В MSMQ 3.0 появилась возможность посылать сообщения в общую или частную очередь по протоколу HTTP при наличии на удаленном компьютере службы Internet Information Services ( IIS ). В этом случае используется путь к очереди вида http://domain.name/msmq/private$/queuename. Посылающий сообщения компьютер так же должен поддерживать HTTP для MSMQ, иначе он не сможет получать какие-либо ответы. При чтении сообщений использовать HTTP -формат имени очереди невозможно.

MSMQ поддерживает два вида имени очереди – прямой вид ( direct name ) и путь к очереди ( path name ). При использовании частных очередей на удаленном компьютере обычно необходимо использовать прямой путь к очереди. При использовании MSMQ программами на . NET Framework прямой путь записывается следующим образом:

  • Formatname:DIRECT=OS:server01\QueueName – прямое имя общей очереди на компьютере server01;
  • Formatname:DIRECT=OS:ws02\Private$\QueueName – прямое имя частной очереди на компьютере ws02;
  • Formatname:DIRECT=TCP:192.168.30.1\private$\QueueName – прямое имя частной очереди на компьютере с адресом 192.168.30.1.

Полноценная работа с очередями возможна только в пределах локальной или виртуально частной сети, поскольку при чтении сообщений используется Windows RPC (в частности, обращения на 135-й порт ). Кроме этого, среда MSMQ не способна функционировать при использовании NAT , за исключением случая HTTP -имени очереди.

Оцените статью