提问者:小点点

如果我使用两组 Kafka-0.8.0 简单消费者,是否会有重复


这是参考简单消费者示例和高级消费者示例。

根据文档,它似乎表明 SimpleConsumers 负责管理偏移量本身,他们可以选择多次读取消息或仅使用主题中分区的子集。所有这些都是可能的,因为他们可以形成他们的请求并指定他们想要的偏移量。

现在,如果我有两个简单消费者集群,并且都使用不同的 zookeeper 来存储偏移量,那么这两个集群很可能会读取重复的消息。这种理解正确吗?为了避免它们之间的重复,他们必须使用单个动物园管理员集群来存储偏移量。

消费者组的概念仅适用于高级消费者。因此,如果我有两个高级使用者集群,并且都使用相同的组 ID,那么它们将不会收到任何重复的消息。

如果以上不正确,请提出建议。


共2个答案

匿名用户

简单的消费者不使用 zookeeper 来存储偏移量。建议不要将 Zookeeper 用作保存已处理记录偏移量的存储。

消费者组的概念仅适用于高级消费者。因此,如果我有两个高级消费者集群并且都使用相同的组 ID,那么它们将不会收到任何重复的消息

两个集群是什么意思?如果两个使用者属于同一组(具有相同的组 ID),则您的陈述是正确的。

匿名用户

如果您使用的是高级使用者和相同的组 ID,则在从同一主题使用时不会有重复的消息。

如果使用简单使用者,则完全取决于您如何维护偏移量。如果两个使用者的偏移量同步,即它们保持相同的偏移量水平,则不会有任何重复。在您的情况下,它可能会导致重复,因为您是单独维护偏移量。