Apache kafka 无法在kafka中列出代理id

Apache kafka 无法在kafka中列出代理id,apache-kafka,Apache Kafka,我有一个docker文件 version: '3' services: zookeeper: image: wurstmeister/zookeeper ports: - "2181:2181" kafka: image: wurstmeister/kafka ports: - "9092" environment: KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localho

我有一个docker文件

 version: '3'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092"
    environment:
      KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
      KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_CREATE_TOPICS: "test-topic:5:2"
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
我经营着两个经纪人

 docker-compose scale kafka=2
现在我想通过在kafka的docker bash中运行这个文件来获取代理的id

 zookeeper-shell.sh localhost:2181 ls /brokers/ids
我得到的只是:-

    Connecting to localhost:2181
KeeperErrorCode = ConnectionLoss for /brokers/ids

但是我能够使用并生成消息,知道为什么会发生这种情况吗?

您指定的是
localhost
,但是Zookeeper与Kafka在一个单独的容器中

尝试:

还要注意的是,
docker compose scale kafka=2
不会启动第二个代理程序-它在使用

kafka_2      | [2020-04-28 14:55:19,104] ERROR [KafkaServer id=1002] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka_2      | java.lang.IllegalArgumentException: requirement failed: Configured end points localhost:9092 in advertised listeners are already registered by broker 1001

如果您想要Docker Compose运行多个代理的示例,请检查。

我遵循了此
http://wurstmeister.github.io/kafka-docker/
,但是我没有得到关于
刻度的错误,加上我应该做的听众,如果它在不同的容器中?另外,是否有任何文档可以让我找到要指定的参数,`zookeeper-shell.sh ls/brokers/ids`,基本上,我是盲目复制代码的,没有理解。你想实现什么?我已经链接到一个Docker Compose,它展示了如何正确运行多个代理。好的,让我来看看。谢谢
kafka_2      | [2020-04-28 14:55:19,104] ERROR [KafkaServer id=1002] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)
kafka_2      | java.lang.IllegalArgumentException: requirement failed: Configured end points localhost:9092 in advertised listeners are already registered by broker 1001