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

Kafka生产者频繁报disconnected警告但消息发送正常问题排查

AWS MSK IAM认证下Kafka Producer频繁弹出断开连接警告的原因分析

问题现象

每秒都会收到如下警告日志:

10:26:00.055 [kafka-producer-network-thread | producer-1] WARN  o.apache.kafka.clients.NetworkClient - [Producer clientId=producer-1] Bootstrap broker whatever-gravito.kafka.us-east-1.amazonaws.com:9098 (id: -4 rack: null) disconnected

配置信息(Spring Boot自动配置)

spring.kafka.bootstrap-servers=whatever-gravito.kafka.us-east-1.amazonaws.com:9098
spring.kafka.security.protocol=SASL_SSL
spring.kafka.properties.sasl.mechanism=AWS_MSK_IAM
spring.kafka.properties.sasl.jaas.config=software.amazon.msk.auth.iam.IAMLoginModule required;
spring.kafka.properties.sasl.client.callback.handler.class=software.amazon.msk.auth.iam.IAMClientCallbackHandler

异常特征

  • 消息仍能正常发送,业务不受影响
  • 本地笔记本使用相同配置无此警告,消息发送正常
  • 同配置的消费者无此警告,消息消费正常
  • 使用非认证的9092端口连接时无此警告

当前依赖版本

spring-kafka:3.0.11 + aws-msk-iam-auth:2.0.3

原因分析

  1. Producer与Consumer的元数据刷新逻辑差异
    Kafka Producer会定期主动刷新集群元数据,在AWS MSK IAM认证场景下,Producer完成元数据获取后会主动断开与Bootstrap Broker的连接,这一行为被Kafka客户端日志捕捉输出为警告。而Consumer的元数据刷新机制更偏向于按需触发,不会产生同样的断开日志。

  2. 环境网络与日志配置差异
    本地环境和服务器环境的网络策略、TCP连接超时参数不同,本地环境中TCP连接断开的行为未触发日志输出;另外也可能是本地日志级别配置更宽松,未记录该级别的警告。

  3. IAM认证的连接生命周期特性
    aws-msk-iam-auth库在处理Producer的SASL认证流程时,连接生命周期管理逻辑和非认证场景(9092端口)不同:非认证场景下连接会被复用,而IAM认证场景下每次元数据刷新后都会断开Bootstrap连接,进而触发警告。

  4. 依赖版本的兼容性细节
    spring-kafka 3.0.11对应的Kafka客户端版本(3.3.x系列)与aws-msk-iam-auth 2.0.3之间存在交互细节差异,导致这种正常的连接断开行为被日志标记为警告,但实际不影响消息发送功能。

内容的提问来源于stack exchange,提问作者AlikElzin-kilaka

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 00:42:36