我们在生产上面临以下问题:
org.apache.kafka.common.errors.TimeoutException: Batch Expired.
是由于无效的配置(例如批大小,请求超时或其他原因)吗?
答案 0 :(得分:2)
该错误表明某些记录以比从客户端发送记录更快的速率放入队列。
当生产者发送消息时,它们存储在缓冲区中(在将消息发送到目标代理之前),并且记录被分为几批以提高吞吐量。将新记录添加到批处理时,必须在request.timeout.ms
控制的可配置时间窗口内发送记录(默认设置为30秒)。如果批处理在队列中放置的时间更长,则会抛出TimeoutException
,然后将批处理记录从队列中删除,并且不会传递给代理。
增加request.timeout.ms
的值应该可以帮助您解决问题。