kafka send data 超时问题 报错:xx ms has passed since last append

文章探讨了在大数据工作中遇到的Kafka发送数据超时问题,分析了可能的原因,包括服务端压力过大、客户端发送瓶颈、参数配置不当等,并提供了相应的解决方案,如增加服务端Partition、调整客户端request.timeout.ms、优化batch.size和linger.ms等参数,以及处理客户端和Broker机器的压力问题。
摘要由CSDN通过智能技术生成

转行到大数据将近一年了,在工作中经常遇到 kafka send data 超时的报错,今天给各位道友浅谈一下这类问题的经验:

报错日志:
xx ms has passed since last append / xx ms has passed since batch creation plus linger time / ms has passed since last attempt plus backoff time

此异常错误即RecordBatch#maybeExpire方法抛出,意思是:在设置的timeout时间内send线程没有将client缓存内的请求发送出去。

原因通常来说为以下几种:

  1. kafka服务端压力过大导致处理请求慢,查看kafka服务端压力是否过大;
  2. 客户端在短时间发送大量数据导致发送瓶颈;
  3. 一些参数配置和应用本身数据流量模型不匹配;
  4. 平台任务或者客户端本身压力过大(cpu/mem/full gc/网络等等);
  5. broker机器故障;

怎么处理

  1. 服务端压力过大可以增加服务端partition数量
  2. 客户端问题,由于其在短时间可能读取发送大量数据导致客户端发送瓶颈,即生成数据的速度大于客户端发送的速度。 a. 判断发送的数据量,根据能力减少数据量均匀发送; b. 判断发送的数据量,增加任务节点或者并发度分摊数据量发送; c. 客户端设置request.timeout.ms为60*1000,或者更大。
  3. 其他常见的参数调整,参数调优更多和应用自身的一些流量模型相关。 a. 调整batch.size或者linger.ms,通常调大比如到几兆,减少发送qps。对于qps过高的可以进行调整。(核心思想,攒批,提高性能)
  4. 客户端压力过大,cpu/mem/gc/net等导致发送超时。调整资源配置等
  5. broker机器故障,切换机器
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值