gpt4 book ai didi

java - 处理 Kafka Producer 超时异常的指南?

转载 作者:塔克拉玛干 更新时间:2023-11-02 19:06:11 25 4
gpt4 key购买 nike

我的Kafka producer由于各种原因经常出现Timeout异常。我目前使用生产者配置的所有默认值。

我见过以下超时异常:

org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for topic-1-0: 30001 ms has passed since last append

我有以下问题:

  1. 这些超时异常的一般原因是什么?

    1. 临时网络问题
    2. 服务器问题?如果是,那么什么样的服务器问题?
  2. 处理超时异常的一般准则是什么?

    1. 设置“重试”配置以便 Kafka API 进行重试?
    2. 增加“request.timeout.ms”或“max.block.ms”?
    3. 捕获异常并让应用层重试发送消息,但这似乎很难使用异步发送,因为消息将被乱序发送?
  3. 超时异常是可重试的异常吗?重试它们是否安全?

我正在使用 Kafka v2.1.0 和 Java 11。

提前致谢。

最佳答案

“这些超时异常的一般原因是什么?”

  1. 我之前看到的最常见原因是元数据信息过时:一个代理出现故障,该代理上的主题分区已故障转移到其他代理。但是,主题元数据信息尚未正确更新,客户端仍会尝试与失败的代理对话以获取元数据信息或发布消息。这会导致超时异常。

  2. 网络连接问题。这可以通过 telnet broker_host borker_port

  3. 轻松诊断
  4. 代理过载。如果代理因高工作负载而饱和,或者托管太多主题分区,就会发生这种情况。

处理超时异常,一般做法是:

  1. 排除经纪人方面的问题。确保主题分区被完全复制,并且代理没有重载

  2. 修复主机名解析或网络连接问题(如果有的话)

  3. 调整 request.timeout.msdelivery.timeout.ms 等参数。我过去的经验是,默认值在大多数情况下都能正常工作个案。

关于java - 处理 Kafka Producer 超时异常的指南?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54780605/

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