公众号 : 倔强小狮子(最新发布)
消费方式
- consumer 采用 pull 拉模式在 broker中读取消息, 而 pull 模式不足之处是如果Kafka中没有数据, 消费者可能会陷入循环中,一直返回空数据(Kafka采用该模式)
- push 推模式,不同消费者处理消息能力不,产生背压, 甚至可能打垮消费者, 因为消息推送速率取决去 broker
- 上面讲到Kafka采用pull模式获取数据, 在没有数据时会进行空转, Kafka针对这一点采用在消费者消费数据时传入一个时长参数 timeout, 如果没消息是, 消费者等待该 time
- 在生产环境中, 一个consumer group 中存在多个 consumer , 一个topic 中存在多个partition,所以会涉及到partition分配问题;
Kafka 有两种分区策略 RoundRobin 和 Range(默认)
- RoundRobin 是根据 consumer 进行划分, 而 Range 是根据 topic 进行划分
- RoundRobin 轮训分配案例