簡體   English   中英

Docker Compose 的 Kafka 連接問題

[英]Kafka Connection Problem with Docker Compose

我有以下 docker compose yml,

version: '3.5'
services:

  zookeeper:
    container_name: kafka-zookeeper
    image: wurstmeister/zookeeper:3.4.6
    ports:
      - "2181:2181"
    networks:
      - my-network

  kafka:
    container_name: kafka-server
    image: wurstmeister/kafka:2.12-2.5.0
    ports:
      - "9092:9092"
    links:
      - zookeeper
    environment:
      KAFKA_LISTENERS: PLAINTEXT://:9092
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
    networks:
      - my-network
networks:
  my-network:
    driver: bridge

我參考了以下參考資料,

https://github.com/wurstmeister/kafka-docker/wiki/Connectivity

我的 spring boot application.yml 文件如下,

kafka:
  bootstrap:
    url: 127.0.0.1:9092

錯誤是,

[taKafkaProducer] org.apache.kafka.clients.NetworkClient   : [Producer clientId=SensorDataKafkaProducer] Connection to node -1 (/127.0.0.1:9092) could not be established. Broker may not be available.

我可以通過客戶端工具連接 Kafka 並查看偵聽器詳細信息127.0.0.1:9092

bd919e5a4df2        wurstmeister/kafka:2.12-2.5.0       "start-kafka.sh"         About a minute ago   Up About a minute   0.0.0.0:9092->9092/tcp                                      kafka-server

9b94b7dac237        wurstmeister/zookeeper:3.4.6        "/bin/sh -c '/usr/sb…"   About a minute ago   Up About a minute   22/tcp, 2888/tcp, 3888/tcp, 0.0.0.0:2181->2181/tcp          kafka-zookeeper

配置有問題嗎?

使用用戶定義的橋接網絡,容器可以通過名稱或別名相互解析。 因此,在您的情況下 application.yml 應指向 kafka 容器名稱:

kafka:
  bootstrap:
    url: kafka-server:9092

此外,它還可以通過容器名稱配置 kafka 廣告偵聽器:

KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka-server:9092

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM