Обмен используется только один раз по маршруту в Camel? - PullRequest
2 голосов
/ 20 января 2012

Во-первых, основная строка из того, что я пытаюсь сделать

  1. У меня есть MQ, для которого я хочу читать сообщения из
  2. Предварительно обработать XML и установить свойство наExchange
  3. Сделать HTTP-запрос
  4. Обрабатывать данные из http-запроса и из свойства на начальном обмене
  5. Поместить их в очередь исходящих сообщений

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

Обмен используется только один раз?И создает ли маршрут новый обмен для каждого входящего сообщения?

Спасибо!

РЕДАКТИРОВАТЬ: И, конечно, моя пара сразу же гуглит и находит ответ.Да, это уникально, и мы нашли документацию по API Exchange здесь http://camel.apache.org/maven/current/camel-core/apidocs/org/apache/camel/Exchange.html

1 Ответ

3 голосов
/ 22 января 2012

По большей части Exchange создается для каждого потока потребителя маршрута.Единственное исключение (о котором я знаю) - использование «прямой» конечной точки, которая будет повторно использовать существующий Exchange (если он уже существует в запросе) ...

Например, эти 2 маршрута объединены в цепочку (по прямой).Первый маршрут создаст новый Exchange и передаст его по второму маршруту (см. Зарегистрированный exchangeId) ...

from("direct:route1").log("route1.exchangeId=${exchangeId}").to("direct:route2");
from("direct:route2").log("route2.exchangeId=${exchangeId}");

Но, если вы объедините их вместе с любым другим компонентом (seda), vm, activemq и т. д.), тогда для второго маршрута будет создан новый Exchange.

from("seda:route1").log("route1.exchangeId=${exchangeId}").to("seda:route2");
from("seda:route2").log("route2.exchangeId=${exchangeId}");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...