kafkalistener consumerconfig auto\u offset\u reset\u doc最早用于多个侦听器

jgovgodb  于 2021-06-04  发布在  Kafka
关注(0)|答案(1)|浏览(465)

我的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

你知道怎么做吗?

y3bcpkx1

y3bcpkx11#

你提供的配置应该是错误的 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。

相关问题