Статьи

Принимая Apache Camel для поездки с Брюсом Снайдером

Camel — это Java API, который позволяет очень легко выполнять маршрутизацию сообщений. Он реализует многие из шаблонов, найденных в корпоративных шаблонах интеграции . Он не требует контейнера и может быть запущен в любой среде на основе Java. Верблюд имеет целую кучу компонентов — Брюс показывает сетку 6 х 10 с именем компонента в каждой сетке. Другими словами, есть 60 компонентов, которые может использовать Camel. Примеры: ActiveMQ, SQL, Velocity, File и iBATIS.

Крис Ричардсон спрашивает «Что осталось внутри ServiceMix». Зачем использовать ServiceMix, если у вас есть Camel? ServiceMix — это контейнер, который может работать автономно или внутри сервера приложений. Вы можете запустить распределенный ServiceMix как объединенный USB. Верблюд намного меньше и легче, и на самом деле это просто API Java. ServiceMix 4 изменился с архитектуры на основе JBI на OSGi (на основе Apache Felix). Они также ожидают создать ваши маршруты для ServiceMix 4 с использованием Camel вместо XML. Для обработки сообщений вы можете использовать множество разных языков: BeanShell, JavaScript, Groovy, Python, PHP, Ruby, JSP EL, OGNL, SQL, XPath и XQuery.

У верблюда есть CamelContextчто-то похожее на весну ApplicationContext. Вы можете инициализировать его в Java и добавить к нему ваши маршруты:

CamelContext context = new DefaultCamelContext();
context.addRoutes(new MyRouterBuilder());
context.start();

Или вы можете инициализировать его с помощью XML:

<camelContext xmlns="http://activemq.apache.org/camel/schema/spring">
    <package>com.acme.routes</package>
</camelContext>

Верблюд RouteBuilderсодержит плавный API, который позволяет вам определить, из / в и другие критерии. На этом этапе Брюс показывает несколько примеров использования Java API. Он показывает Маршрутизатор, основанный на контенте, Фильтр сообщений, Сплиттер, Агрегатор, Переводчик сообщений, Повторный секвенсор, Дросселирующее устройство и Задержку.

Брюс потратил последние 10 минут на демонстрацию с использованием Eclipse, m2eclipse, camel-maven-plugin и ActiveMQ. Забавно видеть, как парень из командной строки, такой как Брюс, говорит, что не может жить без m2eclipse. Я предполагаю, что XML Maven не так уж и хорош.;-)

Верблюд построен на вершине весны и имеет хорошую интеграцию. Очевидно, разработчики Camel пытались добавить его в Spring, но ребята из SpringSource этого не хотели. По совпадению Spring Integration был выпущен примерно через год.

Верблюд также позволяет вам использовать «бобы» и привязывать их к конечным точкам верблюда с аннотациями. Например:

public class Foo {

    @MessageDriven (uri="activemq:cheese")
    public void onCheese(String name) {
        ...
    }
}

Другие аннотации включают @XPath, @Header и @EndpointInject.

Верблюд также может быть использован для BAM (Мониторинг деловой активности). Вместо использования RouteBuilder вы можете использовать ActivityBuilder для прослушивания действий и создания уведомлений о событиях.

У Брюса было немало людей, которые пришли на эту презентацию. У меня были проблемы с поиском места, потому что я опоздал. Я думаю, он хорошо показал, что такое Верблюд и как ты можешь его использовать.

С http://raibledesigns.com