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 的变量。
我从客户端应用程序收到以下错误消息:
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 的变量。