一个kafka消费者是如何同时消费一个topic的多个分区的数据的?是根据不同的分区的积压数据量还是轮询消费的呢?网上简单查了查没看到相关的说明,望哪位大佬指点下
消息进入到分区,是根据分区规则进入到相应的分区
消费的时候同样是也根据这个规则到相应的分区消费
就跟分布式数据库,数据进入到不同的库,然后取数据的时候,根据规则,从指定的库读取数据
轮询的效率太低
1.消费组启动时候需要指定消费者名称
2.对于多个消费者客户端使用同一个消费组去消费同一个topic时,会在消费者客户端加入后为其分配topic分区,具体方式是对消费者排序后将每个分区依次分配给消费者,此时分区与消费者的对应关系是确定好的
3.消费者加入或下线会触发重平衡,重新给所有消费者分配分区
4.你可以指定消费topic的某个分区
5.消费组内消费者数量与topic分区关系:
消费者数量<topic分区数:会有消费者被分配的分区多余1
消费者数量>topic分区数:会有消费者不能分配到分区