消费者失败时的卡夫卡行为



我查了很多关于Apache Kafka事务,恢复和恰好一次新功能的文章。仍然不了解消费者恢复的问题。 如何确保队列中的每条消息都会得到处理,即使其中一个消费者死亡?

假设我们有一个分配给使用者的主题分区。消费者轮询一条消息并开始处理它。并因电源故障而关闭而未提交。会发生什么?同一组中的任何其他使用者是否会重新轮询此消息?

消费者定期发送检测信号,告诉代理他们还活着。如果代理未从使用者接收检测信号,它将认为使用者已死亡并重新分配其分区。 因此,如果使用者死亡,其分区将分配给组中的另一个使用者,未提交的消息将发送给新分配的使用者。

最新更新