Формат сообщения Apache Camel

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

Маршруты в приложении настраиваются с помощью расширения spring xml. Вот пример того, как может выглядеть один из маршрутов.

    <route id="register">
        <from uri="{{in.queue}}"/>
        <enrich uri="direct:getSequenceNumber" strategyRef="sequenceNumb"/>
        <to uri="bean:extractor"/>
        <to uri="bean:mover"/>
        <to uri="bean:normalizer"/>
        <to uri="bean:logger"/>
        <to uri="bean:packager"/>
        <split parallelProcessing="true">
            <simple>${body}</simple>
            <to uri="{{out.queue}}"/>
        </split>
    </route>

Сначала небольшой терминологический вопрос: как называются промежуточные компоненты в этих примерах? Конечные точки? Компоненты? Или что-то другое? Прямо сейчас я называю их компонентами.

Моя основная путаница сейчас заключается в том, чтобы понять, что получает ввод и что передается от одного компонента к другому. В этом случае все компоненты являются javabeans с одним общедоступным методом. Иногда метод имеет возвращаемый тип void, а иногда возвращает некоторый объект. Например, String, List, верблюжий объект-сообщение, пользовательский объект проекта, который не реализует какой-либо верблюжий интерфейс. Иногда возвращаемый класс соответствует аргументу следующего bean-компонента, а иногда нет.

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

Я прочитал часть документации на веб-сайте Camel, и мой гуглинг не дал ничего полезного.

Есть ли у кого-нибудь объяснение или подсказки о том, что искать, или ссылка на какое-то место, объясняющее, что происходит?


person numfar    schedule 07.10.2017    source источник


Ответы (1)


Я предлагаю прочитать главу 1 (бесплатную главу) книги Camel in Action - она ​​охватывает все важные концепции Camel его архитектуры и то, как сообщение выглядит в Camel.

person Claus Ibsen    schedule 07.10.2017
comment
Текст был полезен. Раздел 1.3 дает вам приблизительное представление о том, что происходит между компонентами, как я думаю. Все еще не уверены, считаются ли bean-компоненты в примере конечными точками, компонентами или процессорами (хотя я думаю, что все они являются отправителями/получателями)? - person numfar; 07.10.2017
comment
Все <to> с bean-компонентами в вашем маршруте выше маршрутизируются с использованием шаблона EIP каналов и фильтров, где выходные данные из предыдущего вводятся в следующий и т. д., например, если цепочка вызовов методов в Java . - person Claus Ibsen; 07.10.2017