Как я могу передать сообщения Kafka в docker контейнер? - PullRequest
0 голосов
/ 20 февраля 2020

У меня есть компьютер, на котором сейчас размещены серверы zookeeper и kafka.

У меня также есть на той же машине сценарий, который принимает сообщения, отправленные на локальный сервер kafka. Сценарий потребителя работает, как и предполагалось, если я запускаю его напрямую.

Я хочу запустить скрипт потребителя из контейнера docker.

Я успешно создал и запустил контейнер, который запускает потребительский скрипт, но он всегда ждет сообщений kafka.

Как сделать так, чтобы сообщения kafka перенаправлялись в контейнер? Это единственный способ сделать это для размещения серверов zookeeper и kafka непосредственно в контейнере?

1 Ответ

1 голос
/ 21 февраля 2020

По умолчанию контейнер сценария потребителя изолирован от сетевого стека хоста. Потребитель Kafka должен иметь возможность видеть, как ваши брокеры и экземпляры Zookeeper работают на вашем хост-компьютере.

Здесь обсуждается ряд решений этой проблемы: Переадресация хост-порта на docker контейнер

Простым краткосрочным решением является запуск вашего контейнера в сети хоста путем передачи --network=host, что позволяет контейнеру потребителя совместно использовать пространство имен с хостом (например, вы можете использовать «localhost: 9092»). Обратите внимание, что это работает только на хостах Linux.

Docker Документы по использованию сети хоста: https://docs.docker.com/network/host/

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