理解kafka、消费者群体和主题

understanding kafka, consumer groups, and topics

我正在尝试了解kafka的消费者群体概念。

所有文档都使它看起来好像使用了一个消费者组来并行化特定主题中的读取。但我也了解到消费者可以订阅多个主题。

所以我的问题是 -- 消费者群体和主题之间的关系是什么?属于同一消费群体的 2 个不同的消费者可以从不同的主题中阅读吗?

All the documentation makes it look as if a consumer group is used to parallelize reads within a particular topic. But I've also read that consumers can subscribe to multiple topics.

是的,是的。

Kafka 将每条发布的消息发送给每个消费者组,但每个组中只有一个消费者。如果你想要队列行为,其中每条消息都是 received/processed 恰好一个消费者,那么每个主题使用一个消费者组。如果您希望 pub/sub 每个消费者都获得每条消息的一份副本,那么每个消费者都应该使用不同的消费者组。

So my question is -- what is the relationship between consumer groups and topics? can 2 different consumers that belong to the same consumer group read from different topics?

最好考虑一下:你想要队列行为(1 条消息 -> 1 且只有一个消费者)吗?还是发布-订阅行为(1 条消息 -> 每个消费者)?还是两者的混合体?一旦你选择了那个,相应地安排消费者群体。

直接回答问题:你通常可以按照你想要的任何方式组织。最合乎逻辑的思考方式是每个主题都有 N 个消费者群体。您可以在不同主题上使用相同的消费者组字符串,但我认为这没有任何意义。