赞
踩
当Kafka消费者一次拉取接收数据过多时,会出现消费过慢超过默认超时时间,导致消费积压,消费者心跳过期,离开消费组从而失去该消费组消费数据的情况。
减少单次拉取消息条数,增加最大拉取间隔时间。
消费者配置中,减少单次拉取消息条数max.poll.records
,增加获取消息后提交偏移量的最大时间max.poll.interval.ms
。
max.poll.records
默认较大,容易产生消费积压导致超过设定的时间(默认5分钟),服务端会认为该消费者失效。
增加超时时间。
消费者配置中,增加超时时间session.timeout.ms
。
session.timeout.ms
是心跳检测时间,kafka消费者默认3秒发送一次心跳,若服务端在session.timeout.ms
内未检测心跳,会认为该消费者失效。
调整发送心跳时间
消费者配置中,调整发送心跳时间heartbeat.interval.ms
。
当使用 Kafka 的分组管理功能时,心跳到消费者协调器之间的预计时间。心跳用于确保消费者的会话保持活动状态,当有新消费者加入或离开组时方便重新平衡。该值必须比 session.timeout.ms
小,通常不高于1/3
。它可以调整得更低,以控制正常重新平衡的预期时间。
消费者配置中,auto.commit.interval.ms
属性控制拉取频率。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。