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

lf3rwulv  于 2023-02-03  发布在  Apache
关注(0)|答案(1)|浏览(157)

我是Kafka的新手,我试着做一些简单的事情。
我和多克一起写Kafka。这是我的多克作曲:

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"

如您所见,我将127.0.0.1Kafka_ADVERTISED_HOST_NAMEE的“我的IP”设置为www.example.com
然后,我执行以下操作:docker-compose up -d,选中with docker ps -a,然后看到此屏幕截图enter image description here
然后我提高经纪人的数量:docker-compose up --scale kafka=3 -d我使用docker ps -a进行检查,然后看到此屏幕快照:enter image description here
在我的浏览器上,我转到:http://127.0.0.1:8080,我看到有1个群集离线,请参见屏幕截图:enter image description here
为什么???我有一台旧电脑:Linux Mint 21,4 Gb内存,英特尔酷睿i3
我是否需要更多内存?

yi0zb3m4

yi0zb3m41#

RAM不是问题所在
它处于离线状态,因为它无法连接。KAFKA_ADVERTISED_HOST_NAME: 127.0.0.1 + ports: 9092:9092表示它只接受来自外部主机的连接,而不接受来自其他容器的连接。您将无法使用该变量集来扩展容器,因为它需要是kafka,但当您扩展到一个代理之外时,它也无法硬编码为kafka(换句话说,每个容器都需要一个唯一的主机名). This page covers more details。但是,一个解决方案是使用KAFKA_LISTENERS: PLAINTEXT://:9092,并从Compose中删除ports,除非您确实需要Docker外部的连接。
无论如何,在同一台主机上运行多个代理并没有什么真实的的好处。

相关问题