我正在使用KafkaProducer.send()方法将记录发布到Kafka。
这是一种异步方法。我的应用程序将大约2万条记录发布到Kafka。成功发送大约1万条记录后,很多时间我都收到超时异常。我增加了batch.size和linger.ms,这减少了问题,但有时我仍然会遇到超时异常。
有没有办法一次只发送10k条记录,等待它们完成然后发送下一批?我不想使用send.get()使其同步,因为这会使它非常慢。
这是我得到的例外。

Error publishing object on partition 0 org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s)

最佳答案

您是否尝试将retries=3设置为生产者配置?
并且可能在记录到期的情况下,您不应增加batch.size而是减小它。

10-07 13:18
查看更多