1.概述
新版本 consumer 默认把位移提交到 consumer offsets 中 。其Kafka 也支持用户把位移提交到外部存储中,比如数据库中。若要实现这个功能,用户就必须使用 rebalance 监听器 。 使用 rebalance 监听器的前提是用户使用 consumer group 。 如果使用的是独立 consumer 或是直接手动分配分区,那么 rebalance 监听器是无效的 。
rebalance 监听器有一个主要的接口回调类ConsumerRebalanceListener
,里面就两个方法
onPartitionsRevoked
和 onPartitionAssigned
在 coordinator
开启新 一 轮 rebalance
前onPartitionsRevoked
方法会被调用,而 rebalance
完成后会调用 onPartitionsAssigned
方法。
再均衡指的是发生以下情况之一而造成的分区消息重新分配的情况:
- 消费者上下线消费组内的消费者数量发生了变化
- 消费者订阅的主题发生了变化
- 主题对应的分区变化
若在再均衡过程中采用了kafka的自动提交机制就可能造成再