Spring Cloud Stream @StreamListener и шаблон повторной последовательности Spring Integration - PullRequest
0 голосов
/ 22 ноября 2018

AFAIK Проект Spring Cloud Stream основан на Spring Integration.Поэтому мне было интересно, есть ли хороший способ повторно упорядочить подмножество входящих сообщений до запуска обработчика StreamListener?Или мне нужно собрать все IntegrationFlow с нуля, используя XML или Java DSL config из Spring Integration?

Мой пример использования следующий.Большую часть времени я обрабатываю входящие сообщения по теме Кафки по мере их поступления.Однако несколько событий необходимо повторно упорядочить на основе заголовков CORRELATION_ID, SEQUENCE_NUMBER и SEQUENCE_SIZE.Другими словами, я бы хотел как можно больше использовать StreamListener и просто подключить стратегию повторного упорядочения для некоторых событий.

1 Ответ

0 голосов
/ 23 ноября 2018

Да, вам нужно использовать Spring Integration для этого.На самом деле Spring Cloud Stream фактически является только связующей средой.Он связывает обработчики сообщений с посредниками сообщений через связыватели.Сами обработчики сообщений предоставляются пользователями.Аннотация @StreamListener является в значительной степени эквивалентом @ServiceActivator Spring Integration с несколькими дополнительными функциями (например, условной маршрутизацией), но в остальном это просто обработчик сообщений .

Теперь, как вы ускользнули, вы знаете, что вы можете использовать Spring Integration (SI) для реализации обработчика сообщений или внутреннего потока SI, и это нормально и рекомендуется для сложныхслучаев.

Тем не менее, мы предоставляем готовые приложения, которые реализуют определенные компоненты EIP, и у нас есть, например, приложение aggregator , которое вы можете использовать в качестве отправной точки при реализации resequencer,Более того, учитывая, что у нас есть приложение агрегатор , а не resequencer , мы будем рады принять участие, если вы заинтересованы.Я надеюсь, что это ответит на ваш вопрос.

...