我有多个消费者群体,每个群体有一个消费者。
比如说,主题T1和PartitionP1和2个消费群体 CG1 和 CG2 CG1有一个消费者- CG1#C1,相应的CG2有CG2#C1。
现在,我们在多个消费者群体之间接收到相同的信息,这是根据设计所期望的。
我的问题是,卡夫卡如何在多个消费者群体之间保持这种抵消。如果一个消费者群体在几分钟内停止工作,它就会被备份,那么它将如何从上次提交的读取中获取消息。CG1位于偏移量24和CG2‘中,然后下降到偏移量10。因此,当CG2上升时,它将如何从偏移量11开始,CG1不会受到影响。
发布于 2018-10-27 18:57:14
默认情况下,偏移量存储在一个名为__consumer_offsets的特殊主题中。这是一个紧凑主题,其中偏移被存储为包含主题、分区和作为键的使用者组的键的消息。由于这一点,不同消费群体的抵消是独立的。希望这能回答你的问题。有关如何准确处理此问题的更多信息,您可以在这里查看:偏移跟踪
发布于 2018-10-28 23:29:12
消费者群体是独立的实体。如果消费者在不同的消费群体中,订阅相同的卡夫卡主题,那么抵消管理之间就不会有任何冲突。每个消费者组将在__consumer_offsets主题中维护自己的偏移量(这是管理使用者偏移量的紧凑的内部主题)
Kafka提供了将给定消费者组的所有抵消项存储在称为偏移管理器的指定代理(该组)中的选项。每当使用者从分区读取消息时,它都会将偏移提交请求发送给偏移管理器。一旦提交请求被接受,使用者就可以读取下一个偏移量。
如果偏移提交失败,使用者重试提交。每个分区都维护每个偏移量提交。
下面是详细的解释:偏移跟踪
https://stackoverflow.com/questions/53023779
复制相似问题