Apache Camel ESB для C # и Java EDA - PullRequest
4 голосов
/ 24 мая 2010

Мы рассматриваем интеграцию некоторых наших грубых бизнес-сервисов с использованием Event-Driven Architecture (EDA), и серверная часть этих сервисов (REST) ​​реализована как в Java, так и в .NET (C #).Мы изначально думали об использовании RabbitMQ (и протокола AMQP) в качестве нейтрального и открытого средства (с хорошей поддержкой клиентов на этих двух языках), но это означало необходимость поддержки другой среды выполнения (Erlang) наряду с Java и CLR.Кроме того, мы рассматриваем Apache qPid, в котором реализована реализация брокером Java протокола AMQP, который может устранить эту проблему.

У кого-нибудь есть опыт использования более богатого ESB Apache Camel поверх ActiveMQ для интеграцииСервисы Java и .NET в стиле Pub-Sub EDA?Я пропустил любые другие возможные предложения относительно маршрута через это?

Спасибо

Ответы [ 4 ]

1 голос
/ 11 июля 2012

Если все, что вам нужно, это платформа обмена сообщениями для поддержки EDA, то Camel не является строго необходимым. Camel - это платформа для перевода между различными форматами полезной нагрузки, маршрутизации между веб-сервисами, обменом сообщениями, RSS-каналами и примерно 160 другими .

Исходя из вашего вопроса выше, ActiveMQ должен быть в состоянии обработать сценарий использования, который вы описываете из коробки.

С точки зрения клиента ActiveMQ имеет поддержку библиотек как для Java (JMS - стандарт ), так и для C ++ / C # ( CMS / NMS - почти точный копия JMS). Другие языки (Ruby, Python, Javascript и т. Д.) Поддерживаются через ( в значительной степени также стандартный ) STOMP протокол.

Я работал с ActiveMQ в смешанной среде .Net / Java, и он делает именно то, что говорит на жестяной банке. Все в приятной среде исполнения Java, которую можно оснастить с помощью ваших любимых инструментов мониторинга через JMX.

0 голосов
/ 11 июля 2012

Должно работать отлично! ActiveMQ - это Java-приложение, но для него есть работающий клиентский API .NET. Это должно сделать большинство ваших потребностей паба / саба. Если вам нужно больше логики в середине, например, маршрутизации, на самом деле ActiveMQ поставляется в комплекте с Camel, так что вы можете выполнять маршрутизацию, преобразования, преобразования и т. Д. Прямо в экземпляре ActiveMQ, конфигурируя некоторый XML (или код Java / Scala ).

Нет необходимости обрабатывать Camel напрямую .NET, так как в любом случае связь должна осуществляться через ActiveMQ. Комбинация ActiveMQ / Camel действительно мощная для такого рода задач - и она бесплатна.

0 голосов
/ 17 июля 2010

Я создал адаптер конечной точки Java для моего приложения .net. Приложение .net публикует сообщение xml или json на конечную точку верблюда, в моем случае это тема TibcoEMS Вся маршрутизация / фильтрация / обогащение / ... обрабатывается внутри верблюда. Обмен затем помещается в другую конечную точку для извлечения приложением Java.

0 голосов
/ 14 июля 2010

Один из сценариев использования ESB, который действительно светит Camel, - «Маршрутизация».Насколько я знаю, нет .NET-порта верблюжьего механизма маршрутизации.Таким образом, вы не сможете использовать возможности маршрутизации Camel на стороне .NET.Тем не менее, верблюд поддерживает различные форматы обмена, такие как json, xml и pojos.Вы должны быть в состоянии обеспечить взаимодействие между Java и .NET, используя либо xml, либо json в качестве формата обмена.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...