首页 > 解决方案 > Spring 的 ConsumerSeekAware.onPartitionsAssigned 和 ConsumerAwareRebalanceListener.onPartitionsAssigned 之间的区别

问题描述

Spring 有两个接口:ConsumerSeekAware并且ConsumerAwareRebalanceListener提供了一个类似命名的方法:onPartitionsAssigned().

我假设它的org.springframework.kafka.listener.ConsumerAwareRebalanceListener.onPartitionsAssigned()行为类似于 Kafka org.apache.kafka.clients.consumer.ConsumerRebalanceListener.onPartitionsAssigned(),每次发生分区重新分配时都会被调用,包括在消费者启动时。

工作如何org.springframework.kafka.listener.ConsumerSeekAware.onPartitionsAssigned() ?它什么时候被调用?在每个分区重新分配或仅在消费者开始收听时?

如果我需要强制消费者从头开始读取,是否可以在所有分配的分区上寻求偏移 0,ConsumerSeekAware.onPartitionsAssigned()或者在每次重新分配分区后(例如在重新平衡期间)强制它从头开始?

标签: springapache-kafka

解决方案


推荐阅读