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

Apache NiFi 1.16.3中PublishKafka_2_0报TimeoutException求助

Apache NiFi 1.16.3 PublishKafka_2_0 连接Kafka 3.2 超时问题排查

问题描述

我正在使用Apache NiFi 1.16.3版本,通过PublishKafka_2_0处理器向Kafka 3.2版本的Broker(PLAINTEXT协议)发送记录时,遇到如下错误:

PublishKafka_2_0 Failed to send StandardFlowFileRecord to Kafka:
org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 10000 ms

当前使用PublishKafka_2_0 1.16.3,已配置Setting、Scheduling、Properties模块(配置信息见附图),尝试过以下操作但未解决问题:

  • 更换不同版本的PublishKafka处理器
  • 增大max request size(发送的JSON消息小于1MB)

排查方向及解决方案

1. 验证Broker地址配置与网络连通性

  • 确认Bootstrap Servers配置格式正确,应为host:port,多地址用逗号分隔,无需添加PLAINTEXT://前缀(协议单独在Security Protocol中配置)
  • 在NiFi服务器上执行telnet <kafka-host> <kafka-port>或nc -zv <kafka-host> <kafka-port>,测试端口是否可达;同时确认能ping通Kafka Broker主机

2. 调大元数据更新超时参数

在PublishKafka_2_0的Properties配置中,修改以下参数:

  • 将request.timeout.ms从默认10000ms调整为30000ms
  • 调大metadata.max.age.ms至60000ms以上,延长元数据缓存有效期,减少频繁更新请求

3. 确认Topic状态与权限

  • 登录Kafka服务器,执行命令验证目标Topic存在:
    kafka-topics.sh --list --bootstrap-server <kafka-host>:<port>
    
  • 检查Topic是否允许写入:执行kafka-acls.sh(PLAINTEXT模式下若未配置ACL,默认允许所有写入),同时确认Broker未限制NiFi服务器IP的访问

4. 检查Kafka Broker监听配置

查看Broker的server.properties文件:

  • 确保listeners配置包含PLAINTEXT协议且绑定可访问地址,而非仅localhost:
    listeners=PLAINTEXT://0.0.0.0:9092
    
  • 确认advertised.listeners配置的是NiFi能访问的公网/内网IP,而非内部不可达地址:
    advertised.listeners=PLAINTEXT://<kafka-accessible-ip>:9092
    

5. 排查网络拦截

确认NiFi与Kafka Broker之间的防火墙、安全组已开放Kafka监听端口(默认9092),无IP或端口拦截规则

6. 匹配客户端与Broker版本兼容性

PublishKafka_2_0对应的Kafka客户端版本为2.0.x,与Kafka 3.2存在跨大版本差异,可能引发兼容性问题:

  • 尝试使用NiFi中对应Kafka 3.x版本的PublishKafka_3_2处理器(若NiFi版本支持)
  • 若无法更换处理器,可在NiFi的自定义配置中调整Kafka客户端参数,关闭部分新版本特性

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 00:53:24