Przekazywanie wartości między procesorami w Apache camel

W Apache camel, który z nich jest najlepszym sposobem przekazywania wartości z procesora exchange do innego (i dlaczego):

  • przechowywanie go w nagłówkach exchange
  • przy użyciu metody setProperty podczas budowania trasy.
  • W inny sposób..
Author: kgautron, 2012-04-26

4 answers

Właściwości i nagłówki są prawie takie same. Nagłówki są jednak konwertowane do / z nagłówków specyficznych dla protokołu na niektórych komponentach, takich jak Jms. Więc

  • Meta dane wewnątrz trasy: właściwości
  • Meta dane do / z zewnątrz: nagłówki
 24
Author: Petter Nordlander,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-08-27 05:11:49

Jedną z różnic, o której nie wspominają Ben i Petter, jest to, że właściwości są bezpiecznie przechowywane przez cały czas przetwarzania wiadomości w Camel. Nagłówki są natomiast częścią protokołu komunikatów i nie mogą być propagowane podczas routingu. Na przykład JMS ma ograniczenia, które można przechowywać jako nagłówki itp.

Możesz przeczytać darmowy Rozdział 1 Książki Camel w akcji, ponieważ obejmuje ona pojęcia Camel z wymianą, wiadomością itp.

 44
Author: Claus Ibsen,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-29 21:02:15

Wymiana jest przekazywana pomiędzy procesorami. Zawiera właściwości, IN message i opcjonalny OUT message. Każdy z nich jest w stanie przechowywać dane obiektowe, ale ogólnie:

  • użyj właściwości Exchange dla ogólnych metadanych o wiadomości (używanych rzadziej)
  • użyj nagłówków wiadomości IN do skonfigurowania właściwości punktu końcowego lub metadanych o treści wiadomości (często używanych)
  • Użyj w treści wiadomości dla ładunku wiadomości (używane najczęściej często)
  • Utwórz wiadomość OUT tylko wtedy, gdy jest to konieczne, aby zachować oddzielne wiadomości IN vs. OUT podczas przetwarzania (domyślnie używane jest tylko IN)

To powiedziawszy, to naprawdę zależy od komponentu zwanego po procesorze. Większość ma nagłówki i / lub wartości ciała, które są wymagane do użycia punktu końcowego, itp. Szczegóły można znaleźć na stronie komponentu .

Ponadto, Wymiana / Wiadomość są wyjaśnione bardziej szczegółowo na tych strony:

Http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html

Http://fusesource.com/docs/router/2.8/prog_guide/MsgFormats-Exchanges.html

 17
Author: Ben ODay,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2012-04-26 16:25:25

Odpowiedź jest tutaj:

Właściwości: właściwości są mapą i mogą wyglądać jak wiadomość nagłówki. Główną różnicą jest ich żywotność: właściwości istnieją podczas całego Exchange Exchange, natomiast nagłówki są ograniczone do czasu trwania wiadomości (i wiadomość może się wiele zmienić podczas routingu, więc podczas wykonywania exchange). Wielbłąd sama może dodać pewne właściwości dla niektórych przypadków użycia.

 0
Author: Adam Ostrožlík,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-06-14 15:10:50