You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Kafka DeleteRecords请求超时异常问题咨询

Kafka Connect超时异常排查:deleteRecords(api=METADATA) 超时

错误信息

partition: B3-0 error: org.apache.kafka.common.errors.TimeoutException: Call(callName=deleteRecords(api=METADATA), deadlineMs=1721138713548, tries=721498, nextAllowedTryMs=1721138714452) timed out at 1721138713557 after 721498 attempt(s)

环境配置

  • 使用Docker镜像:confluentinc/cp-kafka-connect:7.6.1
  • Maven中Kafka版本配置:
<kafka.version>2.5.1</kafka.version>
<kafka-connect.version>2.5.1</kafka-connect.version>
  • 已升级ZooKeeper测试依赖版本:
<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.7.2</version>
    <scope>test</scope>
</dependency>
  • 升级了kafka-log4j-appender依赖:
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-log4j-appender</artifactId>
    <version>3.7.0</version>
</dependency>
  • 完整Kafka相关依赖:
<dependency>
    <groupId>io.confluent</groupId>
    <artifactId>kafka-connect-avro-converter</artifactId>
    <version>7.3.8</version>
</dependency>
<dependency>
    <groupId>com.ibm.eventstreams.connect</groupId>
    <artifactId>kafka-connect-mq-sink</artifactId>
    <version>${connector.third.party.kafka-connect-mq.version-sink}</version>
    <type>jar</type>
    <scope>system</scope>
    <systemPath>${basedir}/${connector.third.party.jars}/kafka-connect-mq-sink-1.5.2-jar-with-dependencies.jar
    </systemPath>
</dependency>

<dependency>
    <groupId>com.ibm.eventstreams.connect</groupId>
    <artifactId>kafka-connect-mq-source</artifactId>
    <version>${connector.third.party.kafka-connect-mq.version-source}</version>
    <type>jar</type>
    <scope>system</scope>
    <systemPath>
        ${basedir}/${connector.third.party.jars}/kafka-connect-mq-source-1.3.5-jar-with-dependencies.jar
    </systemPath>
</dependency>
<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.13</artifactId>
    <version>${kafka-connect.version}</version>
    <classifier>test</classifier>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka_2.13</artifactId>
    <version>${kafka-connect.version}</version>
    <scope>test</scope>
    <exclusions>
        <exclusion>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
        </exclusion>
        <exclusion>
            <groupId>org.apache.zookeeper</groupId>
            <artifactId>zookeeper</artifactId>
        </exclusion>
    </exclusions>
</dependency>

<dependency>
    <groupId>org.apache.zookeeper</groupId>
    <artifactId>zookeeper</artifactId>
    <version>3.7.2</version>
    <scope>test</scope>
</dependency>
<dependency>
    <groupId>org.scala-lang</groupId>
    <artifactId>scala-library</artifactId>
    <version>2.13.12</version>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>kafka-clients</artifactId>
    <version>${kafka.version}</version>
    <classifier>test</classifier>
    <scope>test</scope>
</dependency>

<dependency>
    <groupId>org.apache.kafka</groupId>
    <artifactId>connect-runtime</artifactId>
    <version>${kafka-connect.version}</version>
    <classifier>test</classifier>
    <scope>test</scope>
</dependency>

排查建议

1. 解决版本冲突问题

  • 镜像与依赖版本不匹配:confluentinc/cp-kafka-connect:7.6.1对应Confluent Platform 7.6.1,底层Kafka版本为3.6.1,但你的Maven配置用的是Kafka 2.5.1,版本差距极大,必然导致客户端API不兼容、通信协议不匹配,引发超时异常。建议将Maven中的kafka.version和kafka-connect.version统一改为3.6.1,同时将kafka-connect-avro-converter版本改为7.6.1(与镜像版本对齐)。
  • kafka-log4j-appender版本不兼容:当前使用的3.7.0版本与Kafka 2.5.1不匹配,需改为与Kafka版本一致的3.6.1版本,避免API调用错误。
  • 第三方连接器依赖冲突:kafka-connect-mq-sink和kafka-connect-mq-source使用system scope引入,其自带的依赖可能包含旧版本Kafka客户端,与当前环境冲突。建议移除system scope,改用Maven仓库依赖(如果可用),或者解压jar包排查并排除冲突的Kafka依赖。

2. 调整Kafka Connect配置参数

针对元数据请求超时问题,可调整以下配置:

  • 增大request.timeout.ms:延长请求超时时间,默认30000ms,可根据实际情况调整为60000ms或更高。
  • 调整metadata.max.age.ms:缩短元数据刷新间隔,默认300000ms,可改为60000ms,确保客户端及时获取最新的集群元数据。
  • 检查retry.backoff.ms和retry.backoff.max.ms:合理设置重试间隔,避免短时间内大量重试导致资源耗尽。

3. 集群与网络检查

  • 确认Kafka Broker集群状态正常:所有Broker节点运行正常,无高负载、OOM等情况,ZK集群状态稳定。
  • 检查网络连通性:Kafka Connect容器与Broker、ZK之间网络通畅,无防火墙、路由限制,延迟在合理范围内。
  • 查看Broker日志:检查Broker端是否有元数据请求处理缓慢、连接拒绝等日志,定位是否为集群端问题。

内容的提问来源于stack exchange,提问作者skd

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 18:33:14