java - 如何通过application.properties激活KafkaBatchListener (factory.setBatchListener(true))

标签 java spring-kafka

文档清楚地说明了如何设置出厂设置以启用批处理监听器: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 参数将所有这些手动移动到代码中。有没有办法通过应用程序属性激活批量监听?

最佳答案

不是通过属性,但您可以简单地覆盖工厂启动的默认自动配置...

@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;
}

关于java - 如何通过application.properties激活KafkaBatchListener (factory.setBatchListener(true)),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53501541/

相关文章:

java - Spring上下文初始化失败

java - 带有输入参数的 orm.xml 命名查询

java - 电话号码分割(国际版)java

java - Confluence Cloud Apache Kafka Consumer - 主题 [test-1] 不存在且 MissingTopicsFatal 为 true

java - 找不到“org.springframework.kafka.core.ConsumerFactory”

java - 为特定的 Spring Boot 测试禁用 Kafka 监听器

java - 哈希表内容 : the first 2 Keys are Null . ...如何获取我保存的内容

java - 带有 EXTRA_OUTPUT 的 Android Intent MediaStore.ACTION_VIDEO_CAPTURE 在播放时崩溃,重拍

spring-boot - Spring 启动: excluding some autoconfigured beans

apache-kafka - ConcurrentKafkaListenerContainerFactory 中 kafka.concurrency 的默认值是多少?