【发布时间】:2019-10-13 02:17:52
【问题描述】:
我遇到了向 Kafka 主题生成消息的问题。
当向 Kafka 主题生成一些消息时,它会间歇性地失败并出现异常:
org.apache.kafka.common.errors.TimeoutException:some-topic-1 的 6 条记录已过期:自批处理创建以来已过去 30056 毫秒加上逗留时间
这个问题似乎与我在这里找到的其他问题不同。它发生在负载非常低的情况下。我很确定我没有超过缓冲区大小(默认值)。 linger.ms 设置为 0(默认)。 request.timeout.ms 也设置为默认值 30000。
实际上我的问题是:在调用 send() 方法和实际发送它之间,有什么可以让发送 kafka 消息的过程持续 30 秒吗?我正在寻找任何能让ProducerBatch 在极低负载(或无任何负载)下的生存时间超过 30 秒的东西。
我使用来自外部提供商的 Kafka 托管服务,所以我向他询问了代理状态,他说一切正常。顺便说一句,它发生在三个不同的 Kafka 实例上。 Kafka 客户端版本也无关紧要 - 它适用于 0.11.0.0 和 2.0.1。
【问题讨论】:
-
看一下图表here 它包含了所有可能影响超时的设置
标签: apache-kafka kafka-producer-api