Kafka 架构深入( Kafka消费者, 分区策略)

本文深入探讨了Kafka的消费方式,包括拉模式(pull)和推模式(push)及其优缺点。在Kafka中,消费者通过设置timeout参数避免在无数据时的空转。接着,文章介绍了Kafka的两种分区策略——RoundRobin和Range。Range策略是Kafka的默认策略,可能存在消费分区不均匀的问题。RoundRobin则按消费者进行分配,但多Topic消费时可能会导致分配不理想。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

公众号 : 倔强小狮子(最新发布)

在这里插入图片描述

消费方式
  • 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 轮训分配案例
    在这里插入图片描述
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值