# server.properties
listeners=PLAINTEXT://0.0.0.0:9092
advertised.listeners=PLAINTEXT://192.168.10.21:9092
kafka-broker-api-versions.sh --bootstrap-server \
  192.168.10.21:9092

客户端一直打 Connection to node -1 could not be established,broker 进程明明在跑,端口也没被占。这类现象通常不是突然出现的,往前翻半天日志能看到苗头。

追下去是这么回事:broker 返回给客户端的 advertised.listeners 是内网地址或者错的主机名,客户端拿到元数据就按那个地址回连,超时之后无限重试。

围绕「Kafka 连接失败」排查时,命令行跑一遍比在面板里点十次有用,面板会替你做掉不少隐式操作。监控和日志的时间要对上,时区不一致会多绕很大一圈。

临时改动用注释写上日期和原因,过两周自己都记不清为什么这么写。动手前把原文件复制一份带时间戳,出问题立刻换回去,比现场分析快得多。

一次只改一处,改完立刻验证,几个改动叠在一起,出问题就说不清是谁导致的。

处理上按这个顺序:登录 broker 确认 advertised.listeners 注册的地址;改成客户端能解析的地址 重启后重新拉元数据;容器部署要分清容器内外网地址和端口映射关系。

确认没问题再收工,客户端能完成元数据拉取并稳定收发,不再打印连接失败的相关日志。

作者 9823189