簡體   English   中英

帶有 docker 的 KAFKA:集群離線但容器根據“docker ps -a”啟動

[英]KAFKA with docker : cluster offline but container are up according "to docker ps -a"

我是 kafka 的新手,我正在嘗試做一些簡單的事情。

我用 docker 運行 kafka。這是我的 docker-compose:

version: "3.2"
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181"

  kafka:
    image: wurstmeister/kafka
    depends_on:
      - zookeeper
    ports:
      - "9092-9094:9092"
    environment:
      KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

  kafkaui:
    image: provectuslabs/kafka-ui
    depends_on:
      - kafka
      - zookeeper
    ports:
      - "8080:8080"
    environment:
      KAFKA_CLUSTERS_0_NAME: local
      KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS: "kafka:9092"

如您所見,我將 My IP 作為KAFKA_ADVERTISED_HOST_NAMEE的 127.0.0.1

然后我這樣做: docker-compose up -d我檢查with docker ps -a我看到這個截圖在這里輸入圖像描述

然后我增加經紀人的數量: docker-compose up --scale kafka=3 -d我檢查docker ps -a我看到這個截圖:在此處輸入圖像描述

在我的瀏覽器上,我 go 到: http://127.0.0.1:8080我看到我有 1 個集群離線,看截圖:在此處輸入圖像描述

為什么??? 我有一台舊電腦:linux mint 21、4 Gb RAM、intel Core i3

我需要更多內存嗎?

內存不是問題

它處於離線狀態,因為它無法連接。 KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 + ports: 9092:9092意味着它只接受來自外部主機的連接,而不是其他容器。 您將無法使用該變量集擴展容器,因為它必須是kafka ,但是當您擴展到一個代理之外時,它也不能硬編碼為kafka (換句話說,每個容器都需要一個唯一的主機名)。 此頁面包含更多詳細信息 但是,一種解決方案是改用KAFKA_LISTENERS: PLAINTEXT://:9092 ,並從 Compose 中刪除ports ,除非您確實需要 Docker 之外的連接。

無論如何,在同一台主機上運行多個代理並沒有真正的好處。

暫無
暫無

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

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