Производитель Kafka говорит "unknown_topic_or_partition" - PullRequest
0 голосов
/ 05 ноября 2018

Я пытался заставить kafka-docker работать уже несколько дней, и я не знаю, что я делаю неправильно. Сейчас я не могу получить доступ к какой-либо теме с помощью моего клиента ruby-kafka, потому что узел "не существует" Это мой файл docker-compose.yml:

version: '2'
services:
  zookeeper:
   image: wurstmeister/zookeeper
   ports:
     - "2181:2181"
  kafka:
    image: wurstmeister/kafka:0.9.0.1
    ports:
      - "9092:9092"
    links:
      - zookeeper
    environment:
      KAFKA_BROKER_ID: 1
      KAFKA_ADVERTISED_HOST_NAME: 192.168.99.100
      KAFKA_ADVERTISED_PORT: 9092
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'false'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  kafka2:
    image: wurstmeister/kafka:0.9.0.1
    ports:
      - "9093:9092"
    links:
      - zookeeper
    environment:
      KAFKA_BROKER_ID: 2
      KAFKA_ADVERTISED_HOST_NAME: 192.168.99.100
      KAFKA_ADVERTISED_PORT: 9093
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'false'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock
  kafka3:
    image: wurstmeister/kafka:0.9.0.1
    ports:
      - "9094:9092"
    links:
      - zookeeper
    environment:
      KAFKA_BROKER_ID: 3
      KAFKA_ADVERTISED_HOST_NAME: 192.168.99.100
      KAFKA_ADVERTISED_PORT: 9094
      KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181
      KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'false'
    volumes:
      - /var/run/docker.sock:/var/run/docker.sock

Я указываю "KAFKA_AUTO_CREATE_TOPICS_ENABLE: 'false'", потому что я хочу создавать темы вручную, поэтому я вошел в свой первый контейнерный брокер и набрал следующее:

. / Kafka-topics.sh --создать --zookeeper 172.19.0.2:2181 --топический тест1 - разделы 4 - коэффициент репликации 3

И все вроде нормально:

. / Kafka-topics.sh --list --zookeeper 172.19.0.2:2181 -> test1

Но когда я пытаюсь сделать это:

. / Kafka-console-producer.sh --broker-list localhost: 9092 --topic test1

Там написано:

WARN Ошибка при получении метаданных с идентификатором 24 корреляции: {test1 = UNKNOWN_TOPIC_OR_PARTITION} (org.apache.kafka.clients.NetworkClient)

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

1 Ответ

0 голосов
/ 05 ноября 2018

Вы должны правильно настроить свою сеть, поскольку Kafka работает на всех хостах и ​​должен иметь доступ к ним всем.

Этот пост объясняет это подробно.

Вы также можете сослаться на https://github.com/confluentinc/cp-docker-images/blob/5.0.0-post/examples/cp-all-in-one/docker-compose.yml для примера работающего Docker Compose.

...