Kafka消费者消费方式

本文介绍了Kafka消费者的两种消费方式:pull模式和push模式,以及它们的优缺点。在pull模式中,consumer从Broker拉取数据,而push模式下,Broker则将数据推送给consumer。此外,还详细阐述了consumer分区分配策略,包括RoundRobin轮询分配和Range按范围分配,并分析了这两种策略的适用场景和注意事项。
摘要由CSDN通过智能技术生成

consumer消费方式


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

consumer分区分配策略

一个 consumer group 中有多个 consumer,一个 topic 有多个 partition,所以必然会涉及到 partition 的分配问题,即确定哪个 partition 由哪个 consumer 来消费。Kafka 有两种分配策略,RoundRobin和Range。

策略一:RoundRobin 轮询分配
  • 同一个topic下的多个partition会采用轮询的方式将不同的partition分配给同一个consumer group中的多个consumer。
  • 当消费者数量发生变化时会触发分配策
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值