KAFKA 与 docker :集群离线,但容器已根据“to docker ps -a”启动

问题描述 投票:0回答:2

我是卡夫卡新手,我正在尝试做一些简单的事情。

我用 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"

如您所见,我将 KAFKA_ADVERTISED_HOST_NAMEE

的我的 IP 设置为 127.0.0.1

然后我这样做:

docker-compose up -d
我检查
with docker ps -a
我看到了这个屏幕截图 在此输入图片描述

然后我增加经纪人的数量:

docker-compose up --scale kafka=3 -d
我用
docker ps -a
检查,看到了这个屏幕截图: 在此输入图片描述

在我的浏览器上,我转到:http://127.0.0.1:8080 我发现我有 1 个集群处于离线状态,请参见屏幕截图: 在此输入图片描述

为什么??? 我有一台旧电脑: Linux Mint 21、4 Gb RAM、英特尔酷睿 i3

我需要更多内存吗?

apache-kafka docker-compose
2个回答
0
投票

内存不是问题

由于无法连接而处于离线状态。

KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1
+
ports: 9092:9092
表示它只接受来自 external 主机的连接,而不接受其他容器的连接。您将无法使用该变量集来扩展容器,因为它需要是
kafka
,但当您扩展到超过一个代理时,它也不能硬编码为
kafka
(换句话说,每个容器都需要一个唯一的主机名) )。 此页面涵盖更多详细信息。但是,一种解决方案是使用
KAFKA_LISTENERS: PLAINTEXT://:9092
,并从 Compose 中删除
ports
,除非您确实需要 Docker 外部的连接。

无论如何,在同一主机上运行多个代理并没有真正的好处。


0
投票

您需要在 KAFKA_CLUSTERS_0_BOOTSTRAPSERVERS 属性中强制设置 ip,或者在 ui 中进行设置,通过添加新集群,当您在那里时,其余的很简单

© www.soinside.com 2019 - 2024. All rights reserved.