Недавно я начал использовать Camel с Esper. Из документации я знаю, что некоторые шаблоны Camel, такие как, например, Multicast, можно запускать с использованием метода parallelProcessing, который по умолчанию создает пул из 10 потоков для запуска этого шаблона.
После прочтения camel/esper page я ничего не увидел об использовании Esper в Camel с parallelProcessing.
Мой вопрос: могу ли я запустить Esper в Camel, используя какую-то параллельную обработку? Если да, то как?
Ответ 1 · рейтинг 1 · Milan Baran
Multicast - это другой способ решения проблем. Он принадлежит только текущему потоку. Это просто означает, что сообщение из этой точки будет передано другим компонентам без изменений и с параллельным поведением. Напротив находится компонент Pipeline.
Я думаю, вам нужен компонент seda. Напротив seda находится компонент direct. Если вы отправите сообщение на direct, оно будет запущено и начнет новый поток только тогда, когда закончится первый. Если вы отправите сообщение seda, он будет запускать новый поток каждый раз, когда получит сообщение. Вы можете определить пул потока/потока и некоторые другие параметры, как себя вести.
Итак, ваша конфигурация верблюда будет выглядеть так:
from("esper:xxx").to("seda:process");