【问题标题】:KafkaListener ConsumerConfig AUTO_OFFSET_RESET_DOC earliest for multiple listenersKafkaListener ConsumerConfig AUTO_OFFSET_RESET_DOC 最早用于多个监听器
【发布时间】:2019-12-01 11:42:48
【问题描述】:

我的 Spring Boot 应用程序中有 3 个侦听器。只有一个听众应该从头开始阅读主题。如果我添加到 yml 文件:spring.kafka.consumer.auto-offset-reset: earliest 那么它适用于所有听众,但我只需要一个。我已添加:

import static org.apache.kafka.clients.consumer.ConsumerConfig.AUTO_OFFSET_RESET_DOC;
......
@KafkaListener(groupId = "${random.uuid}",
            properties = {AUTO_OFFSET_RESET_DOC + ":earliest"})

但它不起作用,设置没有被拾取,因为我在启动时看到打印的设置:

ConsumerConfig values: 
    auto.commit.interval.ms = 5000
    auto.offset.reset = latest

任何想法如何做到这一点?

【问题讨论】:

    标签: java spring apache-kafka listener consumer


    【解决方案1】:

    您提供的配置错误应该是AUTO_OFFSET_RESET_CONFIG 而不是AUTO_OFFSET_RESET_DOC

    @KafkaListener(groupId = "${random.uuid}",
            properties = {AUTO_OFFSET_RESET_CONFIG + ":earliest"})
    

    也可以直接指定属性

    @KafkaListener(groupId = "${random.uuid}",
            properties = {"auto.offset.reset = earliest"})
    

    从 doc @KafkaListener 注释中,有一个名为 properties 的字段接受字符串数组

    Kafka 消费者属性;它们将取代消费者工厂中定义的任何同名属性(如果消费者工厂支持属性覆盖)。

    支持的语法

    支持的键值对语法与为 Java 属性文件中的条目定义的语法相同:

    key=value
    key:value
    key value
    

    group.id 和 client.id 被忽略。

    【讨论】:

      猜你喜欢
      • 2020-10-03
      • 1970-01-01
      • 1970-01-01
      • 2021-05-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多