запустить несколько узлов kafka на localhost (docker-compose) - PullRequest
0 голосов
/ 28 января 2019

Я пытаюсь запустить докерскую кафку и масштабировать ее на моем локальном хосте.Вот мой первоначальный docker-compose.yml:

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092:9092"
    environment:
        KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
        KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

Это прекрасно работает, когда я запрашиваю с BOOTSTRAP_SERVERS_CONFIG = "PLAINTEXT: //127.0.0.1: 9092".

Очевидно, если яиспользуйте docker-compose scale kafka = 3 Я получу ошибку, потому что порт 9092 на локальном хосте уже используется.

В соответствии с документом: https://github.com/wurstmeister/kafka-docker/wiki/Connectivity я пытался изменить порт следующим образом:

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9092"
    environment:
        KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092
        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092
        KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

При этом, если я запрашиваю с BOOTSTRAP_SERVERS_CONFIG = "PLAINTEXT: //127.0.0.1:9092 "мой производитель не может отправить сообщение из-за тайм-аута.Это означает, что точка входа не KAFKA_LISTENERS или KAFKA_ADVERTISED_LISTENERS.

java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Failed to update metadata after 60000 ms.

Если я использую порт, моя докер будет привязана (32001): BOOTSTRAP_SERVERS_CONFIG = "PLAINTEXT: //127.0.0.1: 32001": 32001другое сообщение об ошибке при попытке отправить сообщение:

java.util.concurrent.ExecutionException: org.apache.kafka.common.errors.TimeoutException: Expiring 1 record(s) for demo-0:120001 ms has passed since batch creation

Я предполагаю, что в KAFKA_LISTENERS и KAFKA_ADVERTISED_LISTENERS есть что-то странное, но я не могу найти способ заставить его работать.

В моей последней попытке я сделал:

version: '2'
services:
  zookeeper:
    image: wurstmeister/zookeeper
    ports:
      - "2181:2181"
  kafka:
    image: wurstmeister/kafka
    ports:
      - "9093:9092"
    environment:
        KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 # or PLAINTEXT://0.0.0.0:9093
        KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092 # or PLAINTEXT://127.0.0.1:9093 
        KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181

Но это не помогло.Если у кого-то есть идея, дайте мне знать.

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