2013-11-02 3 views
0

Я все еще борюсь с подчинением некоторых основных функций и ограничений Camel.Apache-Camel, ActiveMQ, camel-jms и Fuse -> зачем они мне нужны?

Моя цель - реализовать демонстрационное приложение, которое может migrate camel endpoints. Чтобы достичь этого, все предложили мне использовать camel load-balancer pattern с конструкцией отказоустойчивости.

Для достижения этой цели люди предложили Fuse и ActiveMQ. Некоторые даже предложили JBoss, но я проиграл.

Я понимаю, что Camel нуждается в реализации JMS-сервера. Для этого я могу использовать ActiveMQ - бесплатную реализацию JMS-сервера.

Однако верблюд также представляет собой компонент jms. Что это? Является ли это клиентской реализацией JMS? Если да, не следует ли использовать ActiveMQ-клиент для JMS? Может ли кто-нибудь представить рабочий пример?

С помощью ActiveMQ и JMS я могу попытаться выяснить, почему люди предлагают Fuse. Я хочу, чтобы моя реализация была как можно более простой. Зачем мне нужен плавкий предохранитель? Комбинация Camel + ActiveMQ имеет шаблон балансировки нагрузки с механизмом переключения при сбое?

Я потерялся в этом море новых технологий, если кто-то может дать направление, я был бы благодарен.

+1

Тот же вопрос (ы) был отправлен в список рассылки Camel, где есть более подробная информация: http://camel.465427.n5.nabble.com/Migrate-Apache-Camel-Endpoints-tp5741899 .html –

+0

Ассортимент предохранителей - это «выпущенные» версии ActiveMQ, Camel или ServiceMix. Затем JBoss купил Fuse Source, поэтому их продукты были переименованы в JBoss. – LostInComputer

+0

Да, я также размещаю там, потому что я предполагаю, что люди обычно заняты и не могут ответить на все мои вопросы на форумах Nabble. Извиняюсь, если это действие вас обижало. –

ответ

2

Camel предлагает два компонента. Первым является компонент jms, который является общим API для работы с серверами JMS. Другим является компонент activemq, который использует API-интерфейс activemq для работы с брокерскими агентами activemq. Компонент activemq является компонентом по умолчанию в таких вещах, как servicemix/fuse, с использованием внутреннего брокера (а не сетевого/внешнего брокера).

Если вы подключаетесь к activemq, вы можете использовать либо компонент activemq, либо компонент jms. Компонент jms не будет запускать брокера автоматически, вам нужно будет сделать это самостоятельно.

Fusesource == JBoss Fuse == Apache ServiceMix + некоторые дополнения. Для аргументации я буду ссылаться на все три из них как ServiceMix.

ServiceMix - это служебная шина предприятия, вы можете найти этот термин в википедии, если вы не знакомы с этой концепцией. Он использует Apache Camel для определения маршрутов между вашими компонентами, реализации ряда интеграционных шаблонов по мере необходимости. ServiceMix по умолчанию развертывается с Apache CXF для сервисов JAX-RS и JAX-WS и Apache ActiveMQ, брокера сообщений JMS. Используя Camel, вы можете сообщить сервисный микс, что, когда вызывается API REST, выполните ряд шагов, каждый из которых отделен от предыдущего.

JBoss Fuse (предприятие, стоимость денег) поставляется с некоторыми дополнительными компонентами, которые не работают. Некоторые из них присутствуют в servicemix (а именно, вы можете запускать servicemix в режиме горячей подставки, ожидая, когда первичный узел опустится). Шаблон балансировки нагрузки Camel на самом деле не означает ничего вокруг репликации, за исключением того, что сообщение, поступающее с одной конечной точки, может быть доставлено в любой из множества конечных точек N. http://camel.apache.org/load-balancer.html

На обратной стороне, посмотрите на отработки отказа ServiceMix в http://servicemix.apache.org/docs/4.4.x/users-guide/failover.html

Я думаю, основываясь на ваш вопрос, вы имеете в виду отказа системы аварийного переключения (необходимость работать против нового экземпляра), а не компонент Camel Loadbalancer (что, вероятно, связано с путаницей, со стороны сообщества и вашей стороны).

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