Kafka在崩溃后重新启动时如何识别组中的消费者

问题描述 投票:1回答:1

假设我有两个消费者 - 一个消费者群体中的C1和C2。在C1和C2生效之前,主题上有10条消息。 C1读取前5条消息并在C2读取消息9-10时关闭。一段时间后,C1回来了。现在,Kafka如何确定刚刚出现的消费者确实是C1,并且它允许它从最后提交的消息中读取它,当它在该组中早先注册时它是否保存了一些信息,以便它可以在它到来时唯一地识别C1再次回来?

apache-kafka kafka-consumer-api kafka-producer-api
1个回答
1
投票

偏移不会绑定到实际的Kafka Consumer实例,而是绑定到使用者组。更确切地说,每个使用者组的每个主题/分区的已承诺偏移量存储在__consumer_offsets主题中(这是一个压缩的主题,因此只保留最新的偏移量)。

在您的情况下,一旦消费者C1启动并再次运行,它通常会开始消耗消费者所属的消费者群体的最新承诺偏移量中的数据(这取决于配置 - 您可以强制它从开始)。在您的情况下,C1将开始使用第11条消息中的消息。

© www.soinside.com 2019 - 2024. All rights reserved.