сервер очереди сообщений майкрософт msmq что это
Установка системы очередей сообщений (MSMQ)
В процедурах ниже показана методика установки очереди сообщений 4.0 и очереди сообщений 3.0.
служба очереди сообщений 4,0 недоступна в Windows XP и Windows Server 2003.
Установка Message Queuing 4.0 в Windows Server 2008 или Windows Server 2008 R2
В диспетчер сервера щелкните компоненты.
В области справа в разделе Сводка компонентов щелкните Добавить компоненты.
В открывшемся окне разверните очередь сообщений.
Разверните узел службы очередей сообщений.
Щелкните Интеграция служб каталогов (для компьютеров, присоединенных к домену), а затем щелкните Поддержка HTTP.
Нажмите кнопку Далее, а затем — установить.
Установка очереди сообщений 4.0 в Windows 7 или Windows Vista
Откройте Панель управления.
Разверните сервер очереди сообщений Microsoft (MSMQ), разверните ядро сервера очереди сообщений Microsoft (MSMQ) и затем отметьте флажками установку следующих возможностей очереди сообщений:
MSMQ Доменные службы Active Directory (для компьютеров, подключенных к домену).
Поддержка MSMQ HTTP.
Нажмите кнопку OK.
Установка Message Queuing 3.0 в Windows XP или Windows Server 2003
Откройте Панель управления.
Выберите очередь сообщений и щелкните сведения.
если вы используете Windows server 2003, выберите сервер приложений для доступа к очереди сообщений.
Удостоверьтесь, что на странице сведений выбрана функция поддержки MSMQ HTTP.
Что такое очередь сообщений Microsoft (MSMQ)? Как это работает?
Мне нужно работать с MSMQ (очередь сообщений Microsoft). Что это, для чего это, как это работает? Чем он отличается от веб-сервисов?
9 ответов
Как указано в его имени, это просто администратор очередей.
вы можете отправлять объекты (сериализованные) в очередь, где они будут оставаться, пока вы их не получите. Он обычно используется для отправки сообщений или объектов между приложениями развязанным способом
Это не имеет ничего общего с веб-сервисов, это две разные вещи
информация о Служба msmq:
информация о веб-сервисах:
при всем уважении к ответу @Juan, оба являются способами обмена данными между двумя отключенными процессами, т. е. межпроцессными каналами связи (IPC). Очереди сообщений являются асинхронными, а веб-службы-синхронными. Для этого они используют разные протоколы и серверные службы, поэтому они совершенно разные по реализации, но схожие по назначению.
вы хотели бы использовать очереди сообщений, когда есть вероятность, что другой процесс общения может не быть доступным, но вы все равно хотите, чтобы сообщение было отправлено во время выбора клиента. Доставка произойдет, когда процесс на другом конце просыпается и получает уведомление о прибытии сообщения.
Управление Транзакционными Очередями 101
транзакционная очередь-это промежуточная система, которая асинхронно маршрутизирует сообщения одного типа между хостами, которые могут быть подключены или не подключены в любой момент времени. Это означает, что он также должен быть способен сохранять сообщение где-то. Примерами таких систем являются MSMQ и IBM MQ
транзакционная очередь также может участвовать в распределенные сделки, и откат может вызвать удаление сообщений. Это означает, что сообщение гарантированно будет доставлено с в-самый-раз семантика или гарантированная доставка, если не откат. Сообщение не будет доставлено, если:
хост a публикует сообщение, но хост B не подключен
что-то (возможно, но не обязательно инициируется от хоста A) откат транзакции
B подключается после транзакции откат
в этом случае B никогда не будет знать, что сообщение даже существовало, если оно не было сообщено через какой-либо другой носитель. Если транзакция была откатана, это, вероятно, не имеет значения. Если B подключается и собирает сообщение до отката транзакции, откат также обратит действие сообщения на B.
обратите внимание, что A может отправить сообщение в очередь с гарантией поставки at-most-once. Если транзакция зафиксирована, хост A может предположить, что сообщение было поставленный надежным средством перехода. если транзакция откатывается, хост A может предположить, что любые эффекты сообщения были отменены.
Web-Сервисов
веб-сервиса удаленный вызов процедур или другой сервис (например RESTFul API) опубликовано (обычно) HTTP Сервер. Это синхронный протокол запроса / ответа и не имеет никакой гарантии доставки, встроенной в протокол. Клиент должен проверить правильность запуска службы. Как правило, это будет через ответ на запрос или ожидания вызова.
в последнем случае веб-службы не гарантируют семантику не более одного раза. Сервер может завершить службу и не доставить ответ (возможно, через что-то вне сервера, идущего не так). Этот приложение должно быть в состоянии справиться с этой ситуацией.
IIRC, RESTFul services должны быть идемпотентными (то же состояние достигается после любого количества вызовов той же службы),что является стратегией для борьбы с этим отсутствием гарантированного уведомления об успехе/сбое в архитектурах веб-служб. идея заключается в том, что концептуально записывается состояние, а не вызов службы, поэтому можно писать любое количество раз. Это означает, что недостаток отзывы об успехе могут быть допущены приложением, поскольку оно может повторно попробовать публикацию, пока не получит сообщение об успехе с сервера.
обратите внимание, что вы можете использовать Windows Communication Foundation (WCF) в качестве уровня абстракции выше MSMQ. Это дает вам ощущение работы с сервисом-только с односторонними операциями.
на самом деле нет никакой связи между MSMQ и WebService. Использование MSMQ для межпроцессной связи (можно также использовать сокеты, сообщения windows, сопоставленную память). это служба windows, которая отвечает за хранение сообщений до тех пор, пока кто-то dequeue их. вы можете сказать, что это более надежно, чем сокеты, поскольку сообщения хранятся на жестком диске, но это медленнее, чем другие методы IPC.
вы можете использовать MSMQ в dotnet с небольшими строками кода, просто объявите свой
несколько лучших ссылок из поиска Google для «MSMQ» должны помочь.
MSMQ-очередь сообщений Microsoft: * MSMQ-это реализация очереди сообщений, разработанная корпорацией Майкрософт. * Он развернут в своих операционных системах Windows Server. * Это протокол обмена сообщениями, который позволяет приложениям, работающим на отдельных серверах / процессах, общаться в отказоустойчивом режиме. * MSMQ обычно используется на предприятии для создания программного обеспечения. * MSMQ обеспечивает надежную доставку, помещая сообщения, которые не достигают места назначения в очередь, а затем повторно отправляя их как только пункт назначения будет доступен. * MSMQ также поддерживает транзакции. Он позволяет выполнять несколько операций в нескольких очередях, причем все операции завернуты в одну транзакцию, что гарантирует, что все или ни одна из операций не вступит в силу. * Технология очереди сообщений (MSMQ) позволяет приложениям, работающим в разное время, взаимодействовать между гетерогенными сетями и системами, которые могут временно отключаться. Следующие порты используются для очереди сообщений Microsoft оперативный: • Протокол TCP: 1801 • RPC: 135, 2101*, 2103*, 2105* * UDP: 3527, 1801
MSMQ означает очередь обмена сообщениями Microsoft.
Очередь сообщений Microsoft
СОДЕРЖАНИЕ
Обзор [ править ]
MSMQ отвечает за надежную доставку сообщений между приложениями внутри и за пределами предприятия. MSMQ обеспечивает надежную доставку, помещая сообщения, которые не достигают предполагаемого места назначения, в очередь, а затем повторно отправляет их, когда место назначения становится доступным. Он также поддерживает безопасность и обмен сообщениями на основе приоритетов. Очереди недоставленных писем могут быть созданы для просмотра сообщений, срок действия которых истек или завершился ошибкой по другим причинам.
MSMQ поддерживает как долговременный, так и кратковременный обмен сообщениями, чтобы найти компромисс между производительностью или согласованностью, записывая сообщения на диск или только в ОЗУ. Кратковременный обмен сообщениями может быть достигнут только путем отправки экспресс-сообщений через нетранзакционные очереди.
MSMQ также поддерживает транзакции. Он позволяет выполнять несколько операций в нескольких очередях, причем все операции заключены в одну транзакцию, что гарантирует, что либо все операции, либо ни одна из них не вступят в силу. Координатор распределенных транзакций Microsoft (MSDTC) поддерживает транзакционный доступ к MSMQ и другим ресурсам для достижения точной транзакционной обработки.
Следующие порты используются для операций Microsoft Message Queuing:
Ссылки на версии [ править ]
Использует [ редактировать ]
MSMQ широко используется в различных приложениях контакт-центров на платформе Windows, которые используют эту службу для внутренних уведомлений и служб.
Обзор Message Queuing
Обмен сообщениями может применяться в сценарии автономной работы, в котором не требуется, чтобы клиент и сервер обязательно запускались в одно и то же время.
Прежде чем углубляться в детали программирования с использованием Message Queuing, в данной статье я предлагаю ознакомиться с основными концепциями организации очередей сообщений и сравнить их с концепциями синхронного и асинхронного программирования.
При синхронном программировании, когда вызывается метод, то вызвавший его код должен ожидать, пока метод не завершит свою работу. При асинхронном программировании вызывающий поток запускает метод и параллельно продолжает свою работу. Асинхронное программирование основано на применении делегатов, библиотек классов, которые уже поддерживают асинхронные методы (например, прокси-классы веб-служб и классы из пространств System.Net и System.IO), либо специальных потоков. Как при синхронном, так и при асинхронном программировании клиент и сервер должны работать в одно и то же время.
Хотя Message Queuing работает асинхронно, поскольку клиент (отправитель) не ожидает прочтения получателем (сервером) оправленных ему данных, между Message Queuing и асинхронным программированием существует принципиальная разница: Message Queuing может выполняться в автономной (отключенной) среде. На момент отправки данных их получатель может быть отключен. Позднее, когда получатель подключится, он получит данные без вмешательства отправляющего приложения.
Конечно, может случиться так, что почта не будет прочитана никогда, а просто проигнорирована. Такова природа отключенных коммуникаций. Чтобы избежать этой проблемы, можно запросить ответ или подтверждение факта прочтения письма. Если ответ не придет в течение определенного времени, возможно, придется как-то справляться с таким «исключением». Все это также возможно в Message Queuing.
Message Queuing, по сути, можно считать технологией для обмена электронными сообщениями между приложениями, а не людьми. Она обладает множеством функциональных возможностей, которые в других службах обмена сообщениями не доступны: гарантированием доставки, применением транзакций, получением подтверждений, экспресс-режимом, использующим память, и т.д. Message Queuing предлагает массу полезных средств для коммуникаций между приложениями.
С помощью Message Queuing можно отправлять, принимать и маршрутизировать сообщения в подключенной и отключенной (автономной) среде. На рисунке ниже показан очень простой способ использования сообщений. Отправитель посылает сообщения в очередь сообщений, а получатель принимает их из этой очереди:
Когда следует использовать Message Queuing
Одной из ситуаций, в которых удобно применять Message Queuing — это когда клиентское приложение часто отключается от сети (например, у коммивояжера, навещающего заказчиков на местах). Коммивояжер может вводить данные заказа непосредственно у заказчика. Приложение ставит сообщение о каждом заказе в очередь сообщений, находящуюся на клиентской системе. Как только коммивояжер возвращается в свой офис, заказ автоматически передается из очереди сообщений клиентской системы в очередь сообщений целевой системы, где и обрабатывается.
Помимо портативного компьютера, коммивояжер может использовать устройство Pocket Windows, где также доступно Message Queuing.
Технология Message Queuing может быть полезна и в подключенной среде. Представьте сайт электронной коммерции (показан на рисунке ниже), где в определенные периоды времени сервер полностью загружен обработкой заказов, например, в ранний вечер и в выходные, при этом по ночам нагрузка значительно уменьшается. Решение проблемы может состоять в приобретении более быстрого сервера или в добавлении дополнительных серверов к системе, чтобы они справлялись с пиковыми нагрузками.
Однако существует более дешевое решение: сгладить пиковые нагрузки, сдвинув транзакции со времени максимальных нагрузок на время с низкой загрузкой. В такой схеме заказы отправляются в очередь сообщений, а принимающая сторона читает их тогда, когда это удобно системе базы данных. Таким образом, нагрузка на систему сглаживается по времени, так что сервер, обрабатывающий транзакции, может быть дешевле и не требовать модернизации:
Функциональные возможности Message Queuing
Технология Message Queuing является службой, которая поставляется как часть операционной системы Windows. Ниже перечислены ее основные функциональные возможности:
Сообщения могут пересылаться в автономной среде. То есть приложению-отправителю и приложению-получателю вовсе не обязательно выполняться в одно и то же время.
В экспресс-режиме сообщения могут пересылаться очень быстро. В экспресс-режиме сообщения просто сохраняются в памяти.
Для механизма восстановления сообщения могут отправляться с гарантированной доставкой. Такие сообщения сохраняются в файлах и доставляются даже в случае перезагрузки сервера.
Очереди сообщений могут защищаться с применением списков контроля доступа и указания в них, каким пользователям разрешено отправлять или получать сообщения из очереди. Кроме того, сообщения могут шифроваться для исключения вероятности их прочтения с помощью сетевых анализаторов пакетов, а также снабжаться приоритетами, чтобы те из них, которые имеют более высокий приоритет, обрабатывались быстрее.
В Message Queuing 3.0 поддерживается возможность отправки многоадресных (multicast) сообщений.
В Message Queuing 4.0 поддерживается возможность распознавания вредоносных сообщений. Для таких сообщений может быть определена специальная очередь.
Например, в случае, если после прочтения сообщения из обычной очереди, далее оно должно вставляться в базу данных, но по какой-то причине этого не происходит, это сообщение может быть отправлено в очередь вредоносных сообщений. Впоследствии этой очередью вредоносных сообщений должен кто-нибудь заняться и выяснить, по какой причине адрес сообщения не удалось преобразовать.
В Message Queuing 5.0 поддерживаются более безопасные алгоритмы аутентификации, и может обрабатываться большее количество очередей. (В Message Queuing 4.0 при обработке нескольких тысяч очередей начинали возникать проблемы с производительностью.)
Из-за того, что Message Queuing является частью операционной системы, установить версию Message Queuing 5.0 в системе Windows XP или Windows Server 2003 не получится. Эта версия входит в состав ОС Windows Server 2008 R2 и Windows 7.
Продукты Message Queuing
Версия Message Queuing 5.0 поставляется в составе Windows 7 и Windows Server 2008 R2. В Windows 2000 входила версия Message Queuing 2.0, в которой не было поддержки ни протокола HTTP, ни многоадресных сообщений. Версия Message Queuing 3.0 поставлялась в составе Windows XP и Windows Server 2003, а версия Message Queuing 4.0 — в составе Windows Vista и Windows Server 2003.
При использовании ссылки Turn Windows Features on or off (Включение или отключение компонентов Windows), которая предлагается в Windows 7 в окне Configuring Programs and Features (Программы и компоненты), можно обнаружить отдельный раздел с опциями, касающимися Message Queuing:
В этом разделе доступны для выбора перечисленные ниже компоненты:
Microsoft Message Queue (MSMQ) Server Core
Основные компоненты сервера очереди сообщений (MSMQ), которые необходимы для получения базовой функциональности Message Queuing.
Active Directory Domain Services Integration
Интеграция MSMQ доменных служб Active Directory. Это средство позволяет записывать имена очередей сообщений в Active Directory. С помощью этой опции можно находить очереди в Active Directory и защищать их на основе пользователей и групп пользователей Windows.
MSMQ HTTP Support
Поддержка протокола HTTP MSMQ. Поддержка MSMQ HTTP позволяет отправлять и принимать сообщения, используя протокол HTTP.
Triggers
С помощью триггеров создаются экземпляры приложений при поступлении нового сообщения.
Multicast Support
Поддержка многоадресной рассылки. Позволяет отправлять сообщения группам серверов.
MSMQ DCOM Proxy
С помощью DCOM-прокси система может подключаться к удаленному серверу, используя API-интерфейс DCOM.
После установки Message Queuing в системе должна быть обязательно запущена служба Message Queuing (показана на рисунке). Эта служба читает и записывает сообщения, а также взаимодействует с другими серверами Message Queuing для осуществления маршрутизации сообщений по сети:
Microsoft Message Queuing (MSMQ) – промежуточная среда обмена сообщениями
5.1. Служба обмена сообщениями MSMQ
При отправке сообщения с использованием MSMQ посылающему приложению необходимо указать имя компьютера и очереди, в которую его необходимо доставить. После вызова приложением функции отправки сообщение сохраняется в локальной исходящей очереди. Затем MSMQ определяет имя компьютера и очереди, куда необходимо передать сообщение. Возможны следующие случаи:
После определения имени компьютера с очередью назначения, MSMQ проверяет доступность компьютера (пакетом UDP ) и в случае ответа сразу пытается отправить ему сообщение, повторяя попытки с интервалом по умолчанию 5 секунд. Если сообщение не удается отправить, то обычно каждые 5 минут служба сообщений пытается найти новый пункт назначения сообщения, используя маршрутизацию MSMQ. Процесс пересылки сообщения между компьютерами повторяется, пока оно не достигнет очереди назначения. С момента поступления сообщения в указанную при отправке очередь любое использующее MSMQ приложение с необходимыми правами доступа может прочитать это сообщение (рис. 5.1).
Таким образом, MSMQ поддерживает асинхронную передачу сообщений, при которой участвующие в обмене компоненты распределенной системы не обязательно должны функционировать в один и тот же момент времени.
5.2. Инфраструктура, необходимая для использования MSMQ
В MSMQ существуют два вида очередей – общие ( public ) и частные ( private ). Как частные, так и общие очереди могут либо использовать, либо не использовать транзакции, что задается при создании очереди и не может быть изменено в дальнейшем.