卡夫卡广播。如果组中唯一的消费者出现故障,如何知道消费者组的读取偏移量

Kafka broadcast. How to know read offsets for consumer group if the only consumer in the group goes down

据我所知,组织广播的最佳方式(即每个消费者都收到所有消息) 是给每个消费者它自己的消费者组ID。

问题是“If all consumers in a group leave the group, the group is automatically destroyed” (来源:https://jaceklaskowski.gitbooks.io/apache-kafka/kafka-properties-group-id.html) 所以这意味着如果我的消费者使用键 groupId,topicName,partitionNumber__consumer_offsets 的相应条目 将被删除,这意味着当消费者再次启动时,使用相同的 group-id 它将无法读取在它关闭时发送的消息。

有人知道解决这个问题的方法吗?

the group is automatically destroyed 并不意味着有关组的全部信息都消失了。我认为它与保存在内存中的数据有关。 offset 的信息未从 __consumer_offsets 中删除。根据 offsets.retention.minutes 属性 的值,(代理 属性)old 偏移量被删除。默认 7 天(10080 分钟)

在 Apache Kafka 文档中,您可以找到有关 offsets.retention.minutes 属性 brokers configs

的信息

offsets.retention.minutes - After a consumer group loses all its consumers (i.e. becomes empty) its offsets will be kept for this retention period before getting discarded. For standalone consumers (using manual assignment), offsets will be expired after the time of last commit plus this retention period.

这意味着,如果来自特定组的消费者在 offsets.retention.minutes 分钟 none 内连接,将删除有关偏移量的信息。