我有3位消费者订阅了Kafka主题。 生产者向主题发布1条消息。
我如何确保该邮件在Kafka内部复制,然后由所有3个使用者使用?
一种方法是不提交消息,但随后消息将继续堆积在主题中。
答案 0 :(得分:1)
Kafka从不复制消息。该消息将始终仅路由到主题/分区一次。
但是Kafka使用消费者群体的概念来区分不同的消费者群体,并决定他们应该如何接收消息。对于您的情况,您必须为每个消费者分配不同的消费者组ID。然后,他们将开始并行接收
消息。此外,在使用者使用Kafka中的消息后,它们也永远不会被删除。它们将被存储在主题/分区中,直到达到保留限制为止,该限制可以基于时间(例如,将邮件保留一周),也可以基于主题大小(例如,将邮件保留为100GB)。
答案 1 :(得分:0)
您唯一要做的就是为每个消费者分配不同的组ID
答案 2 :(得分:0)
您应该为3个消费者设置3个不同的消费者组(具有不同的ID)。
消费者使用消费者组名称标记自己,并记录每条记录 发布到某个主题的文档将交付给每个主题中的一个消费者实例 订阅消费群。消费者实例可以在单独的位置 进程或在单独的计算机上。
如果所有使用者实例具有相同的使用者组,则 记录将有效地在使用者实例上实现负载平衡。
如果所有使用者实例具有不同的使用者组,则 每条记录都将广播到所有消费者流程。