Shi*_*mal 6 spring-boot spring-kafka
是否ConsumerSeekAware接口,重新平衡时调用onPartitionsAssigned方法。因为我想寻找初始化和重新平衡时偏移中的特定偏移。我可以将 ConsumerSeekAware 用于这两个目的吗,还是应该使用 ConsumerRebalanceListener 来实现重新平衡目的。请给出简单的答案,因为我对 spring kafka 还没有深入的了解。如果可以的话请提供示例代码。谢谢
有ConsumerSeekAware
这个方法:
/**
* When using group management, called when partition assignments change.
* @param assignments the new assignments and their current offsets.
* @param callback the callback to perform an initial seek after assignment.
*/
void onPartitionsAssigned(Map<TopicPartition, Long> assignments, ConsumerSeekCallback callback);
Run Code Online (Sandbox Code Playgroud)
它是从 调用的KafkaMessageListenerContainer.seekPartitions(Collection<TopicPartition> partitions, boolean idle)
,而 又是从ConsumerRebalanceListener.onPartitionsAssigned()
内部实现调用的。最后一个有这个 JavaDocs:
* A callback method the user can implement to provide handling of customized offsets on completion of a successful
* partition re-assignment. This method will be called after an offset re-assignment completes and before the
* consumer starts fetching data.
Run Code Online (Sandbox Code Playgroud)
所以,是的,ConsumerSeekAware.onPartitionsAssigned()
在重新平衡期间总是被调用。顺便说一下,Apache Kafka 没有这样的状态initializing
。它总是rebalancing
- 代理处于等待状态,并在新消费者加入时开始重新平衡。
归档时间: |
|
查看次数: |
2975 次 |
最近记录: |