2012-04-28 6 views
2

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

Я знаю, что верблюд может работать автономно (часто при тестировании), но часто развертывается в контейнере или эсб. Уместно ли запускать верблюда в автономном режиме, если только приложения, связанные с ним, - это настольные (качающиеся) приложения?

ответ

2

Ну да и нет. Camel - это маршрутизатор сообщений, он помогает вам определять маршруты для ваших вызовов. Однако это не поможет вам выбрать протокол связи. Это просто ускоряет и ускоряет интеграцию (например, использовать JMS для связи App1 < -> App2, RMI для App2 < -> App3 и некоторый другой протокол для App2 < -> App3).

Да, Верблюд может быть развернут в автономной версии. Here is link how to do this. Я бы советовал создать отдельное приложение (я бы также использовал плагин Shade Maven для встраивания всех зависимостей).

Возможно, вам также потребуется использовать некоторые ESB, например Servicemix или Fuse. Однако это довольно большая среда ...

+0

Так что, если я использовал JMS, я должен был бы отдельный провайдер JMS (возможно, я могу использовать ActiveMQ)? –

+0

Да, вам нужно будет запустить JMS-брокер, прежде чем использовать компоненты Camel, чтобы проталкивать сообщения через него. Вы можете использовать компоненты Camel ActiveMQ - http://camel.apache.org/activemq.html. На мой взгляд, это автономное приложение Camel станет идеальным кандидатом для JMS-сервера. В этом случае Camel и ActiveMQ будут находиться в одной виртуальной машине, поэтому вы можете использовать эту схему подключения JMS: vm: // localhost? ..... – altanis

+0

Спасибо, что имеет смысл. –

1

На самом деле, ванильная установка (распаковка) ActiveMQ (например, 5.5.1) будет поставляться вместе с Camel. Просто измените conf/activeemq.xml и вставьте где-нибудь. Настройте верблюда на conf/camel.xml. ActiveMQ не поставляется со всеми компонентами Camel, поэтому просто удалите любой дополнительный файл верблюжьей бабки в/lib. Вы можете легко просто удалить любые ваши собственные .jar-файлы, которые, например, определяют RouteBuilder и т. Д. В/lib.

1

Для связи между приложениями я бы использовал автономный брокер ActiveMQ (обычно два экземпляра для отказоустойчивости) и встраивал верблюд в толстые клиентские приложения. Затем вы можете использовать функции обмена сообщениями pojo на верблюде, чтобы достичь почти прозрачной коммуникации.

Смотрите мой блог для примера http://www.liquid-reality.de/x/NoBe

+0

Спасибо - оцените ссылку в блоге. –

Смежные вопросы