典型的 Kafka advertised.listeners 配置问题:
kafak为什么不能像redis和mysql一样指定端口的yaml就行了?
docker环境下,需要改一下lisener的指定地址
what?where?
2026-07-09T18:10:37.702+08:00 WARN 3172 --- [zhiguang-auth] [ntainer#0-0-C-1] org.apache.kafka.clients.NetworkClient : [Consumer clientId=consumer-counter-agg-2, groupId=counter-agg] Error connecting to node 1Panel-kafka-xCla:9092 (id: 0 rack: null)
java.net.UnknownHostException: 1Panel-kafka-xCla
at java.base/java.net.InetAddress$CachedLookup.get(InetAddress.java:988) ~[na:na]
at java.base/java.net.InetAddress.getAllByName0(InetAddress.java:1818) ~[na:na]
at java.base/java.net.InetAddress.getAllByName(InetAddress.java:1688) ~[na:na]
at org.apache.kafka.clients.DefaultHostResolver.resolve(DefaultHostResolver.java:27) ~[kafka-clients-3.6.1.jar:na]
at org.apache.kafka.clients.ClientUtils.resolve(ClientUtils.java:122) ~[kafka-clients-3.6.1.jar:na]
at org.apache.kafka.clients.ClusterConnectionStates$NodeConnectionState.c这么多
how?
| 场景 | Redis/MySQL | Kafka |
|---|---|---|
| 宿主机端口映射 | ports: "6379:6379" ✅ | ports: "9080:9092" + advertised.listeners ✅ |
| 外部访问 | 直接连 IP:端口 | 必须先配 advertised.listeners=IP:端口 |
| 多个实例 | 各自独立 | 需要配置集群通信 + 客户端路由 |

挺好的