SEDA - это аббревиатура, обозначающая Staged Event Driven Architecture . Она разработана как механизм для регулирования потока между различными фазами обработки сообщений.Идея состоит в том, чтобы сгладить частоту вывода сообщений из общего процесса таким образом, чтобы он соответствовал входным данным. Это позволяет потокам потребителя enpoint перекладывать работу длительных операций в фоновый режим, тем самым освобождая их для потребления сообщений.от транспорта.Когда обмен передается в конечную точку seda:
, он помещается в BlockingQueue
.Этот список существует в контексте Camel, что означает, что к этому типу конечной точки могут быть присоединены только те маршруты, которые находятся в одном контексте.По умолчанию очередь не ограничена, хотя это можно изменить, установив атрибут размера в URI потребителя.
По умолчанию один поток, назначенный конечной точке, считывает обмены из списка и обрабатывает их черезмаршрут.Как видно из приведенного примера, можно увеличить число concurrenctConsumers
, чтобы обеспечить своевременную обработку бирж из этого списка.
Шаблон SEDA лучше всего подходит для обработки InOnly
сообщения, где один маршрут завершает обработку и передает другому на следующий этап.Можно запросить ответ от конечной точки seda:
, вызвав его, когда шаблон обмена сообщениями InOut
.
Ссылка: Поваренная книга разработчика Apache Camel