Есть ли бесплатная библиотека, которая реализует очереди сообщений, аналогичные MSMQ (Microsoft Message Queuing)? - PullRequest
3 голосов
/ 07 октября 2009

Я заинтересован в использовании бесплатной библиотеки, которая имеет функции, аналогичные MSMQ, для отправки / получения сообщений между 3 доменами приложения в приложении win form. Мне нужна только функция приватной очереди (без публичных очередей или поддержки AD) Пожалуйста, предоставьте ссылки и некоторые преимущества / недостатки. Я с радостью открою дополнительные вопросы, если вы считаете, что вам нужно больше очков для уточнения деталей.

Примечание. К сожалению, у меня есть пользователи, у которых нет профессиональной версии Windows XP (MSMQ недоступен) Я видел Apache ActiveMQ и rabbit MQ, но это кажется немного излишним для того, что мне нужно сделать. http://activemq.apache.org/ http://www.rabbitmq.com/ Эту функцию можно реализовать с помощью одноэлементной очереди, защищенной именованным мьютексом, но я бы не хотел тратить время, если кто-то это уже сделал.

Ответы [ 6 ]

2 голосов
/ 07 октября 2009

Как насчет NServiceBus с использованием транспорта совместно используемой памяти ? Создатель Уди Дахан - уважаемый человек в пространстве архитектуры, основанной на сообщениях.

2 голосов
/ 07 октября 2009

Существует Rhino Queues . Автор считается довольно хорошим разработчиком.

0 голосов
/ 28 августа 2014

См. Также эту систему:

http://www.codeproject.com/Articles/193611/DotNetMQ-A-Complete-Message-Queue-System-for-NET

DotNetMQ - брокер сообщений с открытым исходным кодом, имеющий несколько функций:

Постоянный или непостоянный обмен сообщениями. Гарантированная доставка постоянных сообщений даже в случае сбоя системы. Автоматическая и ручная маршрутизация сообщений в пользовательском машинном графике. Поддерживает несколько баз данных (MS SQL Server, MySQL, SQLite и хранилище на основе памяти на данный момент). Поддерживает не хранить, прямой стиль обмена сообщениями. Поддерживает обмен сообщениями в стиле запроса / ответа. Простая в использовании клиентская библиотека для связи с брокером сообщений DotNetMQ. Встроенная структура для легкого построения служб RMI в очередях сообщений. Поддерживает доставку сообщений в веб-службы ASP.NET. Инструмент управления и мониторинга на основе графического интерфейса. Простота установки, управления и использования.

0 голосов
/ 10 октября 2009

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

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

Возможно, можно попробовать Mono на стороне, не относящейся к Windows. Существует инструмент, который вы можете использовать, чтобы узнать, есть ли у сторонней библиотеки зависимости, которые не будут работать в Mono. Он был выпущен с инструментами Mono для Visual Studio. Он называется Mono Migration Analyzer (MoMA).

0 голосов
/ 07 октября 2009

Возможно, вы захотите взглянуть на Retlang http://code.google.com/p/retlang/

0 голосов
/ 07 октября 2009

Если это все в одном приложении, то вам нужно совместно использовать синхронизированную очередь, посмотрите на метод Queue.Synchronized в MSDN, который предоставляет вам потокобезопасную очередь.

...