这是参考SimpleConsumer Example和High Level Consumer Example。
根据文档,似乎建议SimpleConsumers负责管理偏移本身,他们可以选择多次读取消息或仅占用主题中的一部分分区。所有这一切都是可能的,因为他们可以形成他们的请求并指定他们想要的偏移量。
现在,如果我有两个简单的消费者群集并且都使用不同的zookeeper来存储偏移量,那么两个群集很可能会读取重复的消息。这种理解是否正确?为了消除它们之间的重复,它们必须使用一个zookeeper-cluster来存储偏移量。
消费者群体的概念仅适用于高级消费者。因此,如果我有两个高级别消费者群集并且都使用相同的组ID,那么他们将不会收到任何重复的消息。
如果上述情况不正确,请提出建议。
答案 0 :(得分:0)
简单的消费者不使用zookeeper存储偏移量。建议不将Zookeeper用作存储以保存已处理的记录偏移量。
消费者群体的概念仅适用于高级消费者。 因此,如果我有两个高级别消费者群集,并且都使用 相同的组ID,然后他们将不会得到任何重复的消息
两个集群是什么意思?如果两个消费者属于同一个组(具有相同的组ID),那么您的陈述是正确的。
答案 1 :(得分:0)
如果您使用的是高级消费者和相同的group-id,那么在使用同一主题时不会出现重复消息。
如果使用简单消费者,则完全取决于您维护偏移的方式。如果两个消费者的偏移同步,即它们保持相同的偏移水平,则不会有任何重复。 在您的情况下,它可能会导致重复,因为您要单独维护偏移量。