我正在阅读this SO answer和许多此类博客。
我所知道的:
当运行具有多个使用者组ID的多个使用者时,多个使用者可以在单个分区上运行,并且来自使用者组的只有一个使用者可以在给定时间从分区中消耗。
我的问题与来自多个消费者群体的多个消费者群体有关相同主题:
在多个消费者(不同的群体)消费单个主题(最终是同一个分区)的情况下会发生什么?
他们是否获得相同的数据?
如何管理偏移量?每个消费者都是独立的吗?
(可能基于意见)您如何或通常建议的方法是处理在单个分区上运行的单独组的两个消费者的重叠数据?
编辑: "重叠数据":表示在同一分区上运行的单独消费者群体的两个消费者获得相同的数据。
答案 0 :(得分:3)
是的,他们得到的数据相同。 Kafka只在主题分区中存储一份数据副本。提交日志。如果消费者不在同一个群组中,那么他们每个人都可以使用来自客户端的抓取请求来获取相同的数据。消费者库。每个组成员将获得哪些分区的分配由每个组的主要消费者管理。详细步骤的整个过程记录在https://community.hortonworks.com/articles/72378/understanding-kafka-consumer-partition-assignment.html
抵消是"管理"由消费者,但"存储"在Kafka经纪人的一个特殊的__consumer_offsets主题中。
为每个(consumer group, topic, partition)
元组存储偏移量。在将偏移发布到__consumer_offsets主题时,此组合也用作键,以便日志压缩可以删除旧的不需要的偏移提交消息,以便相同(consumer group, topic, partition)
元组的所有偏移都存储在__consumer_offsets主题的同一分区中(默认为50个分区)
答案 1 :(得分:1)
我不完全确定重叠数据是什么意思,你能澄清一下还是举个例子?