分区的 Kafka 多个消费者

Kafka multiple consumers for a partition

我有一个将消息写入 topic/partition 的生产者。为了保持顺序,我想使用单个分区,我希望 12 个消费者从这个单个分区读取所有消息(没有消费者组,所有消息都应该发送给所有消费者)。这是可以实现的吗?我读过一些论坛,每个分区只有一个消费者可以阅读。

您可以使用 SimpleConsumer 来实现您的要求 - 没有消费者组,所有消费者都可以读取一个分区。然而,这种方法意味着您必须自己处理偏移量存储和代理故障处理。

另一种选择是使用具有不同消费者组的高级消费者(您可以为每个消费者分配一个随机 UUID)。这样您就可以与所有消费者一起消费一个 topic/partition,并能够提交抵消和处理代理中断。

规则"only a single consumer can consume a topic/partition"仅适用于消费者群体,例如只有一个消费者 IN GROUP 可以同时消费一个 topic/partition。

如果您在同一个分区上有多个消费者,这将超出您维持顺序的初始要求。 虽然,您会订购存储,但消费将是未订购的。一定要确保你真的同意。如果是,您可以将每个消费者视为不同的消费者组。