Spring Boot Kafka消费者反复出现Node -1 disconnected问题求助
解决Spring Kafka消费者出现Node -1 disconnected和Cancelled in-flight API_VERSIONS request问题
问题原因
你遇到的Node -1 disconnected和Cancelled in-flight API_VERSIONS request日志,本质是Kafka消费者客户端未能成功与Broker建立有效连接:
Node -1是Kafka客户端的虚拟节点ID,代表还未成功关联到任何真实Broker节点时的占位标识。Cancelled in-flight API_VERSIONS request说明客户端在尝试发送最基础的API版本协商请求时,连接就已中断,请求被取消。
常见触发原因包括:
- Bootstrap Server的地址/端口配置错误,比如端口与Broker实际监听的端口不匹配(9093通常是SSL端口,若未配置SSL会导致连接失败)
- 应用服务器与Kafka Broker之间存在网络连通性问题,比如防火墙、安全组阻止了端口流量
- Broker的
advertised.listeners配置不正确,导致客户端无法获取到有效的Broker节点地址
解决方法
1. 验证Bootstrap Server配置正确性
- 先通过命令测试端口连通性:
如果连接失败,先确认Broker实际监听的端口:telnet kafka-host.com 9093 # 或使用nc命令 nc -zv kafka-host.com 9093- 若Broker使用明文连接,默认端口是9092,将配置中的
kafka-host.com:9093改为kafka-host.com:9092 - 若9093确实是SSL端口,需要在消费者配置中添加SSL相关参数:
props.put(ConsumerConfig.SECURITY_PROTOCOL_CONFIG, "SSL"); // 若需要证书认证,补充以下配置 props.put("ssl.truststore.location", "/path/to/your/truststore.jks"); props.put("ssl.truststore.password", "your-truststore-password");
- 若Broker使用明文连接,默认端口是9092,将配置中的
2. 排查网络与防火墙限制
- 验证域名解析:执行
nslookup kafka-host.com,确认返回的IP是Broker的正确公网/可访问IP - 检查应用服务器到Broker的网络链路:确保没有防火墙、安全组规则阻止9093(或9092)端口的入站/出站流量
- 云环境下,需确认Broker所在实例的安全组已开放对应端口给应用服务器的IP范围
3. 检查Broker的advertised.listeners配置
- 登录Broker机器,打开
server.properties文件,查看advertised.listeners配置项 - 确保该配置的地址是客户端能够访问到的地址(不能使用内部IP或localhost,除非应用与Broker在同一机器),例如:
advertised.listeners=PLAINTEXT://kafka-host.com:9092 # 或SSL端口 advertised.listeners=SSL://kafka-host.com:9093
内容的提问来源于stack exchange,提问作者PatPanda
相关产品推荐
相关产品推荐

