【问题标题】:Will there be duplication if I use two groups of Kafka-0.8.0 SimpleConsumers如果我使用两组 Kafka-0.8.0 SimpleConsumers 会不会重复
【发布时间】:2016-09-09 20:23:47
【问题描述】:

这是参考SimpleConsumer ExampleHigh Level Consumer Example

根据文档,似乎表明 SimpleConsumers 自己负责管理偏移量,他们可以选择多次读取消息或仅使用主题中的分区子集。这一切都是可能的,因为他们可以提出他们的请求并指定他们想要的偏移量。

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

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

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

【问题讨论】:

标签: apache-kafka kafka-consumer-api


【解决方案1】:

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

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

两个集群是什么意思?如果两个消费者都属于同一个组(具有相同的组 ID),那么您的说法是正确的。

【讨论】:

    【解决方案2】:

    如果您使用的是高级消费者和相同的 group-id,那么从同一主题消费时不会出现重复消息。

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

    【讨论】:

    • 对于简单的消费者,这取决于您如何分配分区...如果每个分区都分配给单个消费者实例,则没有重复(只要没有错误)...
    • @MatthiasJ.Sax 如果在维护偏移量方面存在任何问题,则可能使用相同的消费者实例导致重复。例如,如果您读取偏移量 27 并且未能提交偏移量,则消费者实例很有可能再次读取偏移量 27。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-08-20
    • 2017-08-22
    • 2011-12-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-22
    相关资源
    最近更新 更多