Среда Spring Boot для прослушивания тем kafka (@KafkaListener / @StreamListener) Настроил фабрику слушателей для работы в пакетном режиме:
ConcurrentKafkaListenerContainerFactory # setBatchListener
или через application.properties
:
spring.kafka.listener.type=batch
Как настроить фреймворк так, чтобы с учетом двух чисел: N и T, он будет пытаться получить N записей для слушателя, но не будет ждать более T секунд, как описано здесь: https://doc.akka.io/docs/akka/2.5/stream/operators/Source-or-Flow/groupedWithin.html
Некоторые свойства I 'мы посмотрели:
max-poll-records
гарантирует, что вы не получите больше N чисел в пакете fetch-min-size
получите хотя бы такой объем данных в запросе на выборку fetch-max-wait
но не ждите больше, чем необходимо idleBetweenPolls
просто поспите немного между опросами:)
Кажется, что fetch-min-size
в сочетании сfetch-max-wait
должен сделать это, но они сравнивают байты, а не сообщения / записи.
Очевидно, что это можно реализовать вручную, я смотрю, можно ли настроить Spring для этого для меня.