kafka 消费者

本文深入探讨了Kafka的消费者工作流程,重点介绍了消费者组的概念和操作,包括初始化、消费流程以及分区分配策略如Range和Roundrobin。此外,还讨论了offset管理和数据积压问题,强调了消费者事务在确保消息一致性中的作用。

目录

一、kafka的消费方式

 二、消费者总体工作流程

三、消费者组

  消费者组工作原理

  消费者组初始化

 消费者组详细消费流程

 消费一个主题

 消费一个分区

 

消费者组案例

 四、分区分配以及再平衡

分区分配策略Range

 分区分配策略Roundrobin

 

分区分配策略Sticky以及再平衡

五、offest位移

offest默认维护位置

自动offset

手动offset

指定offset

六、按照指定时间消费

 

 七、消费者事务

八、数据积压


一、kafka的消费方式

broker 决定消息推送的速率,对于不同消费速率的 consumer 就不太好处理 了。消息系统都致力于让 consumer 以最大的速率最快速的消费消息,但不幸的是, push 模式下, 当broker 推送的速率远大于 consumer 消费的速率时,consumer 恐怕就要崩溃了 。最终 Kafka 还是选取了传统的 pull 模式。
Pull 模式的另外一个好处是 consumer 可以自主决定是否批量的从 broker 拉取数据 Push 模式必须在不知道下游 consumer 消费能力和消费策略的情况下决定是立即推送每条消息还是缓存之后批量推 送。如果为了避免 consumer 崩溃而采用较低的推送速率,将可能导致一次只推送较少的消息而造成浪 费。 Pull 模式下, consumer 就可以根据自己的消费能力去决定这些策略。
Pull 有个缺点 是, 如果 broker 没有可供消费的消息,将导致 consumer 不断在循环中轮询,直到新消息到达 。为了避免这点, Kafka 有个参数可以让 consumer 阻塞知道新消息到达 ( 当然也可以阻塞知道 消息的数量达到某个特定的量这样就可以批量发送 )

 二、消费者总体工作流程

每个分区的数据只能由消费者组中的一个消费者消费

三、消费者组

  消费者组工作原理

 

  消费者组初始化

 

 消费者组详细消费流程

 

 消费一个主题

 

 

 

 消费一个分区

 

 

 

消费者组案例

 消费者组id相同,那么都在同一个消费者组!

一个分区的数据只会由一个消费者消费!

 

 四、分区分配以及再平衡

分区分配策略Range

 

 如果有多个Topic,可能会导致多出来的分区都由C0消费,导致C0消费过多,即数据倾斜!

 

 分区分配策略Roundrobin

 

 

 

分区分配策略Sticky以及再平衡

 

 

五、offest位移

offest默认维护位置

 

 

自动offset

 

手动offset

 

 

指定offset

 

还需要保证分区分配完成!

 

六、按照指定时间消费

 

 

 七、消费者事务

 

 

 

八、数据积压

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值