新闻资讯

<<返回上一页

机制 Kafka Consumer 消费消息和 Rebalance

发布时间:2024-11-15 02:00:07点击:

Kafka Consumer

Kafka 有消费组的概念,每个消费者只能消费所分配到的分区的消息,每一个分区只能被一个消费组中的一个消费者所消费,所以同一个消费组中消费者的数量如果超过了分区的数量,将会出现有些消费者分配不到消费的分区。消费组与消费者关系如下图所示:

consumer group

Kafka Consumer Client 消费消息通常包含以下步骤:

过程

因为 Kafka 的 Consumer 客户端是线程不安全的,为了保证线程安全,并提升消费性能,可以在 Consumer 端采用类似 Reactor 的线程模型来消费数据。

消费模型

Kafka consumer 参数

Kafka Rebalance

rebalance 本质上是一种协议,规定了一个 consumer group 下的所有 consumer 如何达成一致来分配订阅 topic 的每个分区。比如某个 group 下有 20 个 consumer,它订阅了一个具有 100 个分区的 topic。正常情况下,Kafka 平均会为每个 consumer 分配 5 个分区。这个分配的过程就叫 rebalance。

什么时候 rebalance?

这也是经常被提及的一个问题。rebalance 的触发条件有三种:

如何进行组内分区分配?

Kafka 默认提供了两种分配策略:Range 和 Round-Robin。当然 Kafka 采用了可插拔式的分配策略,你可以创建自己的分配器以实现不同的分配策略。

kafka 高频面试题

免责声明:凡未注明来自本站的稿件和图片作品,系转载自其它网站,及网友投稿,转载目的在于信息传递,并不代表本站赞同其观点和对其真实性负责,如若涉及侵权违规可向站长举报 。