大数据技术之 Kafka (第 3 章 Kafka 架构深入 ) Kafka 消费者

本文深入探讨Kafka消费者的消费方式,重点介绍RoundRobin和Range两种分区分配策略及其优缺点。同时,讲解了消费者在offset维护上的变化,从Zookeeper到内置topic__consumer_offsets的转变。
摘要由CSDN通过智能技术生成

3.3.1 消费方式 

consumer 采用 pull(拉)模式从 broker 中读取数据。 
push(推)模式很难适应消费速率不同的消费者,因为消息发送速率是由 broker 决定的。
它的目标是尽可能以最快速度传递消息,但是这样很容易造成 consumer 来不及处理消息,典型的表现就是拒绝服务以及网络拥塞。而 pull 模式则可以根据 consumer 的消费能力以适当的速率消费消息。 
pull 模式不足之处是,如果 kafka 没有数据,消费者可能会陷入循环中,一直返回空数据。针对这一点,Kafka 的消费者在消费数据时会传入一个时长参数 timeout,如果当前没有数据可供消费,consumer 会等待一段时间之后再返回,这段时长即为 timeout

3.3.2 分区分配策略 

一个 consumer group 中有多个 consumer,一个 topic 有多个 partition,所以必然会涉及到 partition 的分配问题,即确定那个 partition 由哪个 consumer 来消费。 

Kafka 有两种分配策略,一是 RoundRobin,一是 Range。 

1)RoundRobin (轮询)按照组来消费

分区分配策略之RoundRobin

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值