Кроссплатформенная, многоязычная система обмена сообщениями?

StackOverflow https://stackoverflow.com/questions/258638

  •  06-07-2019
  •  | 
  •  

Вопрос

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

Я ищу систему обмена сообщениями, которая предлагает привязки (по крайней мере) на C #, Java и Python и поддерживает шаблоны обмена сообщениями, такие как публикация-подписка, гарантированная доставка, выборочный потребитель (например, Peek in.Обмен сетевыми сообщениями).

Насколько я смог выяснить, нет ничего плохого в JMS или .Net Messaging, просто они предназначены только для .Net / Java.

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

Если я не смогу найти ничего подходящего, мне придется сделать что-нибудь свое.Я бы, вероятно, использовал буферы протокола Google для сериализации.Если у кого-нибудь есть другие рекомендации по вариантам технологии, обращайтесь.

О, да - и я хотел бы иметь дополнительное шифрование для каждого канала или для каждого сообщения.

ETA:Спасибо за все быстрые ответы.Сейчас я прорабатываю свой путь через docs & propaganda.Использовал ли кто-нибудь приведенные ниже технологии и для чего / с какими результатами?

Это было полезно?

Решение

activemq

http://activemq.apache.org/cross-language-clients.html

Поддерживает все следующие протоколы

  • Открытый провод
  • ОТДЫХ
  • Топать
  • Уведомление WS
  • XMPP
  • AMQP

Спасибо Пол

Другие советы

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

Sonic Software

Как упоминал Пол, попробуйте ActiveMQ , который поддерживает множество языковых клиентов и проводных протоколы.

BTW ActiveMQ 6.x, вероятно, будет использовать буферы протокола Google в качестве одного из базовых проводных транспортов:)

Я использовал Apache ActiveMQ во многих проектах с большим успехом. Это большинство популярный сегодня и мощный брокер сообщений с открытым исходным кодом.

Кстати, в .Net / C # проект ActiveMQ создал API NMS , который является стандартным API для связи с брокерами сообщений на платформе .Net, которая теперь интегрирована в Spring.Net

Рассматривали ли вы MPI ?

Вы можете использовать ESB (Enterprise Service Bus), например Mule . Идея состоит в том, что вы отправляете свои сообщения на шину любым удобным для вас способом (JMS, http, электронная почта), и шина выполняет маршрутизацию за вас. Я не знаю, есть ли привязки .NET, но даже если их нет, вы можете создать свою собственную, используя механизм расширения. Конечно, это означает, что вам нужно где-то настроить автобус.

Если вам нужна надежная коммерческая поддержка и интеграция практически всего, IBM MQ Series, теперь Websphere MQ предоставляет все функции, описанные в ваших требованиях.

Иногда вы делаете то, за что платите ...; -)

Если вы хотите многоязычный " стандартный " - что означает, что вы не привязаны к использованию конкретного брокера / посредника, такого как ActiveMQ, SonicMQ или WebsphereMQ - я настоятельно рекомендую вам взглянуть на стандарт AMQP ( http://www.amqp.org ) и связанные с ним брокеры (RabbitMQ, QPid, OpenAMQ; см. http://www.amqp.org/confluence/display/AMQP/AMQP+Products ).

Открыть очередь сообщений (Open MQ) включена в сервер приложений GlassFish и также работает на стенде -в одиночестве. Он запускается через несколько секунд и поддерживает клиента Java и C. Поддержка Stomp в настоящее время находится в разработке в версии 4.4.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top