Docker 使用 Kafka 的集群无法与客户端容器建立连接

Docker Cluster with Kafka can't establish a connection with a client container

我从客户端应用程序收到以下错误消息:

Connection to node 1002 (/127.0.0.1:9092) could not be established. Broker may not be available.

节点 1002 是正确的代理 ID,这意味着它能够找到它,但我不明白为什么当客户端应用程序工作时无法建立连接本身 运行在容器上。

Docker-撰写

version: '3'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"

  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'false'
    depends_on:
      - zookeeper

  app:
    image: someuser/someimage
    ports:
     - "8080:8080"
    environment:
       KAFKA_CONNECTION: kafka:9092
    depends_on:
      - kafka

application.yml

spring:
  kafka:
    consumer:
      group-id: tdp-loggers
      auto-offset-reset: earliest
    bootstrap-servers: ${KAFKA_CONNECTION}

tdp:
  topic-name: advice-topic
  messages-per-request: 10

Docker文件

FROM openjdk:17

WORKDIR /app

EXPOSE 8080

COPY .mvn/ .mvn
COPY mvnw pom.xml ./
RUN ./mvnw dependency:go-offline

COPY src ./src

CMD ["./mvnw", "spring-boot:run"]

@Turing85 发布了答案,我不得不更改

KAFKA_ADVERTISED_HOSTNAME

从静态 IP 地址 127.0.0.1 到 kafka 的变量。