Меню Рубрики

Служба очереди сообщений windows 7

Что такое очередь сообщений 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 используется в качестве очереди для сообщений. Сообщения могут быть оболочкой для фактических данных, объекта и всего, что вы можете сериализовать и отправить по проводу. MSMQ имеет свои собственные ограничения. MSMQ 1.0 и MSMQ 2.0 имели ограничение сообщения 4 МБ. Это ограничение было снято с MSMQ 3.0. Message oriented Middleware (MOM) — это концепция, которая сильно зависит от обмена сообщениями. Enterprise Service Bus foundation построен на обмене сообщениями. Все эти новые технологии, зависят от обмена сообщениями для асинхронной передачи данных с надежностью.

MSMQ-очередь сообщений Microsoft: * MSMQ-это реализация очереди сообщений, разработанная корпорацией Майкрософт. * Он развернут в своих операционных системах Windows Server. * Это протокол обмена сообщениями, который позволяет приложениям, работающим на отдельных серверах / процессах, общаться в отказоустойчивом режиме. * MSMQ обычно используется на предприятии для создания программного обеспечения. * MSMQ обеспечивает надежную доставку, помещая сообщения, которые не достигают места назначения в очередь, а затем повторно отправляя их как только пункт назначения будет доступен. * MSMQ также поддерживает транзакции. Он позволяет выполнять несколько операций в нескольких очередях, причем все операции завернуты в одну транзакцию, что гарантирует, что все или ни одна из операций не вступит в силу. * Технология очереди сообщений (MSMQ) позволяет приложениям, работающим в разное время, взаимодействовать между гетерогенными сетями и системами, которые могут временно отключаться. Следующие порты используются для очереди сообщений Microsoft оперативный: • Протокол TCP: 1801 • RPC: 135, 2101*, 2103*, 2105* * UDP: 3527, 1801

MSMQ означает очередь обмена сообщениями Microsoft.

Источник

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).

Таким образом, 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 -имени очереди.

Источник

[ELMA3] Инструкция по настройке очереди сообщений MSMQ

В данной статье мы рассмотрим, как установить и настроить очереди MSMQ сообщений в Windows 2008 R2. Это необходимо сделать для наличия возможности настройки блоков отправки и ожидания сообщений в Дизайнере.

1. Открываем Диспетчер сервера (Server Manager).

2. В контекстном меню узла Компоненты выбираем пункт Добавить компоненты. Запустится мастер добавления компонентов.

3. Устанавливаем флажки Очередь сообщений и Службы очереди сообщений, нажимаем на кнопку Далее.

4. В окне подтверждения выбранных элементов для установки нажимаем на кнопку Установить.

5. Ждем завершения установки — результат установки будет отображен в данном окне.

6. Результат установки «Установка прошла успешно», нажимаем на кнопку Закрыть.

7. В Диспетчере сервера появится компонент Очереди сообщений.

8. Для локального сервера настраиваются частные очереди. Можно создавать общие очереди на удаленных компьютерах с помощью оснастки «Active Directory — пользователи и компьютеры». Для этого необходимо обладать правами администратора домена и войти в систему под пользователем, обладающим правами администратора. Папки «Исходящие очереди» и «Системные очереди» создаются автоматически.

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

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

9. В открывшемся окне указываем название очереди (в нашем случае test) и нажимаем на кнопку ОК.

10. В Дизайнере настраиваем строку подключения для очереди MSMQ. Строка задается в формате: .\private$\test

11. Для проверки работоспособности созданной очереди нажимаем на кнопку Послать тестовое сообщение — будет отображено окно с результатом отправки сообщения.

12. После успешной отправки сообщения в настроенной очереди появится соответствующее сообщение:

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Служба отключается windows audio
  • Служба отвечающая за сеть windows 7
  • Служба отвечающая за принтеры windows 7
  • Служба отвечающая за печать в windows 7
  • Служба отвечающая за обновление windows