允许不同消费者使用同一主题的Kafka消息

时间:2018-09-14 08:54:49

标签: apache-kafka kafka-consumer-api

我有3位消费者订阅了Kafka主题。 生产者向主题发布1条消息。

我如何确保该邮件在Kafka内部复制,然后由所有3个使用者使用?

一种方法是不提交消息,但随后消息将继续堆积在主题中。

3 个答案:

答案 0 :(得分:1)

Kafka从不复制消息。该消息将始终仅路由到主题/分区一次。

但是Kafka使用消费者群体的概念来区分不同的消费者群体,并决定他们应该如何接收消息。对于您的情况,您必须为每个消费者分配不同的消费者组ID。然后,他们将开始并行接收

消息。

此外,在使用者使用Kafka中的消息后,它们也永远不会被删除。它们将被存储在主题/分区中,直到达到保留限制为止,该限制可以基于时间(例如,将邮件保留一周),也可以基于主题大小(例如,将邮件保留为100GB)。

答案 1 :(得分:0)

您唯一要做的就是为每个消费者分配不同的组ID

答案 2 :(得分:0)

您应该为3个消费者设置3个不同的消费者组(具有不同的ID)。

  

消费者使用消费者组名称标记自己,并记录每条记录   发布到某个主题的文档将交付给每个主题中的一个消费者实例   订阅消费群。消费者实例可以在单独的位置   进程或在单独的计算机上。

     

如果所有使用者实例具有相同的使用者组,则   记录将有效地在使用者实例上实现负载平衡。

     

如果所有使用者实例具有不同的使用者组,则   每条记录都将广播到所有消费者流程。

来自https://kafka.apache.org/documentation/