gpt4 book ai didi

java - Apache Kafka 客户端什么时候抛出 "Batch Expired"异常?

转载 作者:IT老高 更新时间:2023-10-28 20:51:04 25 4
gpt4 key购买 nike

使用 Apache Kafka Java 客户端 (0.9),我尝试使用 Kafka Producer class 向代理发送一长串记录。 .

异步send method立即返回一段时间,然后在短时间内开始阻塞每个调用。大约 30 秒后,客户端开始抛出异常 (TimeoutException),并显示消息“批处理过期”

什么情况会导致这个异常被抛出?

最佳答案

此异常表明您正在以比发送记录更快的速度排队记录。

当您调用 send 时方法,ProducerRecord将存储在内部缓冲区中以发送到代理。一旦ProducerRecord,该方法立即返回已被缓冲,无论是否已发送。

记录被分组为 批处理 以发送到代理,以减少每条消息的传输偷听并提高吞吐量。

将记录添加到批处理后,发送该批处理有一个时间限制,以确保它已在指定的时间内发送。这由 Producer 配置参数 request.timeout.ms 控制。 ,默认为 30 秒。

如果批处理的排队时间超过了超时限制,则会抛出异常。该批处理中的记录将从发送队列中删除。

使用配置参数增加超时限制,将允许客户端在过期之前将批处理排队更长的时间。

关于java - Apache Kafka 客户端什么时候抛出 "Batch Expired"异常?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34794260/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com