卡夫卡广播。如果组中唯一的使用者掉线,如何知道该使用者组的读取偏移量

时间:2019-01-16 10:59:34

标签: java apache-kafka broadcast spring-kafka

据我了解,组织广播的最佳方式(即每个消费者都收到所有消息) 是给每个消费者自己的消费者组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键将相应条目下移 将被删除,这意味着当使用者再次上升时,使用相同的组ID,它将无法读取下降时发送的消息。

有人知道解决方案吗?

1 个答案:

答案 0 :(得分:4)

the group is automatically destroyed并不意味着有关组的所有信息都消失了。我认为这与保存在内存中的数据有关。不会从offset中删除有关__consumer_offsets的信息。根据{{​​1}}属性的值,(经纪人属性)偏移量将被删除。默认为7天(10080分钟)

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

  

offsets.retention.minutes -某个消费者组失去所有消费者(即变空)后,将在此保留期内保留其偏差,然后再丢弃。对于独立使用者(使用手动分配),偏移量将在上次提交时间加上此保留期后过期。

这意味着,如果offsets.retention.minutes分钟内没有特定群组的消费者被连接,则有关偏移的信息将被删除。