Kafka控制拉取频率和请求超时时间

Kafka控制拉取频率和请求超时时间


背景

当Kafka消费者一次拉取接收数据过多时,会出现消费过慢超过默认超时时间,导致消费积压,消费者心跳过期,离开消费组从而失去该消费组消费数据的情况。


解决方案

  1. 减少单次拉取消息条数,增加最大拉取间隔时间。

    消费者配置中,减少单次拉取消息条数max.poll.records,增加获取消息后提交偏移量的最大时间max.poll.interval.ms

    max.poll.records默认较大,容易产生消费积压导致超过设定的时间(默认5分钟),服务端会认为该消费者失效。

  2. 增加超时时间。

    消费者配置中,增加超时时间session.timeout.ms

    session.timeout.ms是心跳检测时间,kafka消费者默认3秒发送一次心跳,若服务端在session.timeout.ms内未检测心跳,会认为该消费者失效。

  3. 调整发送心跳时间

    消费者配置中,调整发送心跳时间heartbeat.interval.ms

    当使用 Kafka 的分组管理功能时,心跳到消费者协调器之间的预计时间。心跳用于确保消费者的会话保持活动状态,当有新消费者加入或离开组时方便重新平衡。该值必须比 session.timeout.ms 小,通常不高于1/3。它可以调整得更低,以控制正常重新平衡的预期时间。

控制拉取频率

消费者配置中,auto.commit.interval.ms属性控制拉取频率。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值