Невозможно указать идентификатор брокера в kafka - PullRequest
0 голосов
/ 28 апреля 2020

У меня есть 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

У меня работает 2 брокера с

 docker-compose scale kafka=2

Теперь я хочу получить идентификатор брокера, запустив этот файл в docker bash Кафки

 zookeeper-shell.sh localhost:2181 ls /brokers/ids

Все, что я получаю, это: -

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

Но я могу потреблять и производить сообщение, любую идею, почему это происходит

1 Ответ

1 голос
/ 28 апреля 2020

Вы указываете localhost, но Zookeeper находится в отдельном контейнере от Kafka.

Попробуйте:

➜ docker exec -it tmp_kafka_1 zookeeper-shell.sh zookeeper:2181 ls /brokers/ids
Connecting to zookeeper:2181

WATCHER::

WatchedEvent state:SyncConnected type:None path:null
[1001]

Также обратите внимание, что 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 Создать несколько брокеров, проверьте этот .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...