Spring integration Spring Kafka收听所有主题并调整分区偏移量
根据上的文档,我正在使用基于注释的@KafkaListener来配置我的使用者 我看到的是- 除非我将偏移量指定为零,否则Kafka consumer会在开始时拾取未来的消息,而不是现有的消息。我理解这是一个预期结果,因为我没有指定我想要的偏移量 我在文档中看到了一个选项,可以指定主题+分区组合以及零偏移量,但是如果我这样做,我必须明确指定我希望我的消费者听哪个主题 使用上面的方法2,这就是我的消费者现在的样子-Spring integration Spring Kafka收听所有主题并调整分区偏移量,spring-integration,apache-kafka,spring-kafka,Spring Integration,Apache Kafka,Spring Kafka,根据上的文档,我正在使用基于注释的@KafkaListener来配置我的使用者 我看到的是- 除非我将偏移量指定为零,否则Kafka consumer会在开始时拾取未来的消息,而不是现有的消息。我理解这是一个预期结果,因为我没有指定我想要的偏移量 我在文档中看到了一个选项,可以指定主题+分区组合以及零偏移量,但是如果我这样做,我必须明确指定我希望我的消费者听哪个主题 使用上面的方法2,这就是我的消费者现在的样子- @KafkaListener(id = "{group.id}",
@KafkaListener(id = "{group.id}",
topicPartitions = {
@TopicPartition(topic = "${kafka.topic.name}",
partitionOffsets = @PartitionOffset(partition = "0", initialOffset = "0"))
},
containerFactory = "kafkaListenerContainerFactory")
public void listen(@Payload String payload,
Acknowledgment ack) throws InterruptedException, IOException {
logger.debug("This is what we received in the Kafka Consumer = " + payload);
idService.process(payload);
ack.acknowledge();
}
虽然我知道有一个选项可以指定topicPattern通配符或主题列表作为注释配置的一部分,但我没有看到一个地方可以为列出的主题/主题模式提供从零开始的偏移值。有没有办法将两者结合起来?请告知。当使用主题和主题模式而不是显式声明分区时,Kafka决定哪个使用者实例将获得哪个分区 Kafka将分配分区,初始偏移量将是该组id的最后一次提交。您当前无法更改该偏移量,但我们正在考虑添加一个 如果始终希望从第一个可用偏移量开始,请使用唯一的组id,例如UUID.randomUUID.toString并设置 由于Kafka没有该组id的现有偏移量,因此它将使用该属性来确定从何处开始
您还可以使用手动确认模式和从不确认模式,这将有效地执行相同的操作。当使用主题和主题模式而不是显式声明分区时,Kafka决定哪个使用者实例将获得哪个分区 Kafka将分配分区,初始偏移量将是该组id的最后一次提交。您当前无法更改该偏移量,但我们正在考虑添加一个 如果始终希望从第一个可用偏移量开始,请使用唯一的组id,例如UUID.randomUUID.toString并设置 由于Kafka没有该组id的现有偏移量,因此它将使用该属性来确定从何处开始
您还可以使用手动确认模式和从不确认模式,这将有效地执行相同的操作。提供topicPattern来处理通配符?比如,如果我提供topicPattern=test*。。我的消费者应该听test1、test2、test3主题吗?模式是正则表达式regex-use test...-test*表示tes、test、test-tes后跟0个或多个ts。是否提供topicPattern来处理通配符?比如,如果我提供topicPattern=test*。。我的消费者应该听test1、test2、test3主题吗?模式是正则表达式regex-use test...-test*表示tes,test,test-tes后跟0或更多ts。
props.put(ConsumerConfig.AUTO_OFFSET_RESET_CONFIG, "earliest");