据我了解,组织广播的最佳方式(即每个消费者都收到所有消息) 是给每个消费者自己的消费者组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,它将无法读取下降时发送的消息。
有人知道解决方案吗?
答案 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
分钟内没有特定群组的消费者被连接,则有关偏移的信息将被删除。