При использовании @KafkaListener в Springboot, как установить idleBetweenPolls - PullRequest
0 голосов
/ 18 июня 2020

"idleBetweenPolls" - удобная конфигурация в spring-kafka для регулировки скорости потребления.

Однако при проверке исходного кода и выполнении c Springboot, похоже, нет упоминания об этом реквизите или как распространить какое-то конкретное значение в org.springframework.kafka.listener.ContainerProperties.

Кто-нибудь знает, как достичь вышеуказанного?

1 Ответ

0 голосов
/ 18 июня 2020

Добавить bean-компонент настройки фабрики контейнеров:

@Component
class Customizer {

    public Customizer(ConcurrentKafkaListenerContainerFactory<?, ?> factory) {
        factory.getContainerProperties().setIdleBetweenPolls(5_000L);
    }

}

Это установит его для всех контейнеров.

Если вы хотите установить его только для определенного c контейнера:

@Component
class Customizer2 {

    public Customizer2(ConcurrentKafkaListenerContainerFactory<?, ?> factory) {
        factory.setContainerCustomizer(container -> {
            if (container.getContainerProperties().getGroupId().equals("theOneIWant") {
                container.getContainerProperties().setIdleBetweenPolls(5_000L);
            }
        });
    }

}

Или настройте свой собственный завод, а не используйте автоматически настраиваемый заводом Boot.

...