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

Docker Compose网络中连接Kafka KRaft模式的问题求助

Docker Compose网络中连接Kafka KRaft模式的问题求助

各位大佬好,最近在折腾Docker Compose下的Kafka(KRaft模式)+ Spring Boot应用部署,遇到个头疼的连接问题,求帮忙看看!

情况是这样的:

  • 我本地直接启动Spring Boot应用的时候,用下面这个配置完全能正常连接Kafka收发消息,一点毛病没有:
kafka:
  bootstrapServers: localhost:9092
  properties:
    security:
      protocol: PLAINTEXT
  • 但当我把Spring Boot也加到Docker Compose里,把配置改成Docker Compose中Kafka的服务名kafka1:9092之后,应用就开始报连接错误了,日志片段如下:
2024-07-31 16:44:11 2024-07-31T13:44:11.109Z  INFO 1 --- [ntainer#0-0-C-1] org.apache.kafka.clients.NetworkClient   : [Consumer clientId=consumer-ocs-message-observer-group-id-1, groupId=ocs-message-observer-group-id] Node 1 disconnected.
2024-07-31 16:44:11 2024-07-31T13:44:11.110Z  WARN 1 --- [ntainer#0-0-C-1] org.apache.kafka.clients.NetworkClient   : [Consumer clientId=consumer-ocs-message-observer-group-id-1, groupId=ocs-message-observer-group-id] Connection to node 1 (localhost/127.0.0.1:9092) could not be established. Broker may not be available.

我就很纳闷,明明已经把bootstrap地址改成容器服务名kafka1:9092了,为啥日志里还是显示客户端要连localhost/127.0.0.1:9092?是不是KRaft模式下的Kafka配置有特殊要求?比如是不是advertised.listeners没配置对,导致Kafka给客户端返回的还是localhost的地址?

有没有大佬遇到过类似的情况?或者知道怎么调整Kafka的Docker Compose配置,让它在容器网络里给Spring Boot客户端返回正确的服务名地址?

备注:内容来源于stack exchange,提问作者Panu Haaramo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.16 10:43:13