Вопрос по – Передача значений между процессорами в Apache Camel
не упомянутых Беном и Петтером, заключается в том, что свойства надежно хранятся на протяжении всей обработки сообщения в Camel. Напротив, заголовки являются частью протокола сообщения и могут не распространяться во время маршрутизации. Например, JMS имеет ограничения, которые вы можете хранить как заголовки и т. Д.
Возможно, вы захотите прочитать бесплатную главу 1 книги «Верблюд в действии», так как в ней рассматриваются концепции верблюда с помощью Exchange, Message и т.
marshal().xstream()
перед отправкой в конечную точку очереди.
рüффп
Properties: свойства являются картой и могут выглядеть как заголовки сообщений. Основное различие заключается в их времени жизни: свойства существуют в течение всего выполнения обмена, тогда как заголовки ограничены продолжительностью сообщения (и сообщение может сильно измениться во время маршрутизации, поэтому во время выполнения обмена). Сам верблюд может добавить некоторые свойства для некоторых случаев использования.
Обмен передается между процессорами. Он содержит свойства, сообщение IN и необязательное сообщение OUT. Каждый из них способен хранить данные объекта, но в целом:
использовать свойства Exchange для общих метаданных о сообщении (используется реже) использовать заголовки сообщений IN для настройки свойств конечных точек или для метаданных о теле сообщения (используется часто) использовать тело сообщения IN для полезной нагрузки сообщения (используется чаще всего) создавать сообщение OUT только в случае необходимости поддерживать отдельные сообщения IN и OUT во время обработки (по умолчанию используется только IN)Тем не менее, это действительно зависит от компонента, называемого следующим вашим процессором. Большинство из них имеют некоторые заголовки и / или значения тела, которые требуются для использования конечной точки и т. компонентная страница для этих деталей.
Кроме того, Exchange / Message более подробно описаны на этих страницах:
http: //camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.htm
http: //fusesource.com/docs/router/2.8/prog_guide/MsgFormats-Exchanges.htm