【问题标题】:Docker Cluster with Kafka can't establish a connection with a client container带有 Kafka 的 Docker 集群无法与客户端容器建立连接
【发布时间】:2022-01-11 06:54:43
【问题描述】:

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

无法建立与节点 1002 (/127.0.0.1:9092) 的连接。经纪人可能不可用。

节点 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

Dockerfile

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"]

【问题讨论】:

  • 尝试将 KAFKA_ADVERTISED_HOST_NAME 设置为容器的名称 (kafka)。

标签: java spring spring-boot docker apache-kafka


【解决方案1】:

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

KAFKA_ADVERTISED_HOSTNAME

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

【讨论】:

  • 我没有发布答案,我请求您尝试一下,因为我不确定它是否能解决问题...
猜你喜欢
  • 2018-02-25
  • 1970-01-01
  • 1970-01-01
  • 2021-06-24
  • 2020-07-03
  • 2020-05-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多