我有3个消费者订阅了一个卡夫卡主题。生产者向主题发布1条消息。
我如何确保信息在内部复制卡夫卡,然后被所有三个消费者消费?
一种方法是不提交消息,但随后消息将继续堆积在主题中。
发布于 2018-09-14 09:22:33
卡夫卡从不复制这些信息。消息总是只被路由到主题/分区一次。
但是,卡夫卡正在使用消费者群体的概念来区分不同的消费者群体,并决定他们应该如何接收信息。在您的示例中,您必须为每个使用者分配不同的使用者组ID。一旦你这样做了,他们就会开始并行地接收信息。
而且,卡夫卡中的信息在消费者消费后从未被删除。它们将存储在主题/分区中,直到达到保留限制,这可以是基于时间(例如,将消息保存一周),或者例如按主题大小(将消息保持在100 to以内)。
发布于 2018-09-14 09:23:09
您应该为这3个使用者设置3个不同的使用者组(具有不同的id)。
使用者用使用者组名称给自己贴上标签,而发布到主题的每条记录都被传递给每个订阅的使用者组中的一个使用者实例。使用者实例可以在单独的进程中,也可以在不同的机器上。 如果所有使用者实例都具有相同的使用者组,那么记录将有效地在使用者实例上被负载平衡。 如果所有的使用者实例都有不同的使用者组,那么每个记录将被广播到所有使用者进程。
发布于 2018-09-14 09:21:43
唯一需要做的就是给每个消费者分配不同的组ids。
https://stackoverflow.com/questions/52328362
复制相似问题