Как активировать KafkaBatchListener через application.properties (factory.setBatchListener (true)) - PullRequest
0 голосов
/ 27 ноября 2018

В документации четко указано, как установить заводские настройки для включения прослушивания пакетов: https://docs.spring.io/spring-kafka/reference/htmlsingle/#batch-listeners

Все остальные настройки выполняются через свойства приложения:

spring.kafka.bootstrap-servers=url
spring.kafka.listener.ack-mode=record
spring.kafka.consumer.enable-auto-commit=false
spring.kafka.consumer.auto-offset-reset=earliest
spring.kafka.consumer.group-id=id-we
spring.kafka.consumer.max-poll-records=1000
spring.kafka.consumer.value-deserializer=org.meteogroup.kafka.envelope.StringEnvelopeDeserializer

Я бы хотелчтобы избежать перемещения всего этого вручную в код с помощью параметров @Value.Есть ли способ активировать пакетное прослушивание через свойства приложения?

1 Ответ

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

Не через свойства, но вы можете просто переопределить автоматическую конфигурацию загрузки по умолчанию для фабрики ...

@Bean
public ConcurrentKafkaListenerContainerFactory<?, ?> kafkaListenerContainerFactory(
        ConcurrentKafkaListenerContainerFactoryConfigurer configurer,
        ConsumerFactory<Object, Object> kafkaConsumerFactory) {

    ConcurrentKafkaListenerContainerFactory<Object, Object> factory = new ConcurrentKafkaListenerContainerFactory<>();
    configurer.configure(factory, kafkaConsumerFactory);

    factory.setBatchListener(true);

    return factory;
}
...