Проблемы с соединением kafka connect datagen при работе сливающейся платформы на панели инструментов Windows Docker - PullRequest
0 голосов
/ 08 июля 2019

Я пытаюсь запустить пример минимального слияния сообщества в Docker для Windows (набор инструментов), используя приведенный здесь пример:

https://docs.confluent.io/current/quickstart/cos-docker-quickstart.html

но кажется, что все компоненты запускаются, только ksql-datagen не работает, не работает,

$ docker-compose.exe ps
The system cannot find the path specified.
     Name                    Command               State                         Ports
------------------------------------------------------------------------------------------------------------
broker            /etc/confluent/docker/run        Up       0.0.0.0:29092->29092/tcp, 0.0.0.0:9092->9092/tcp
connect           bash -c if [ ! -d /usr/sha ...   Up       0.0.0.0:8083->8083/tcp, 9092/tcp
control-center    /etc/confluent/docker/run        Up       0.0.0.0:9021->9021/tcp
ksql-cli          /bin/sh                          Up
ksql-datagen      bash -c echo Waiting for K ...   Exit 1
ksql-server       /etc/confluent/docker/run        Up       0.0.0.0:8088->8088/tcp
rest-proxy        /etc/confluent/docker/run        Up       0.0.0.0:8082->8082/tcp
schema-registry   /etc/confluent/docker/run        Up       0.0.0.0:8081->8081/tcp
zookeeper         /etc/confluent/docker/run        Up       0.0.0.0:2181->2181/tcp, 2888/tcp, 3888/tcp

Я попытался просмотреть журналы

$ docker logs ksql-datagen

и получил это исключение, похоже, он пытается использовать другой IP-адрес, чем тот, который он использует в настоящее время

[kafka-admin-client-thread | adminclient-1] WARN org.apache.kafka.clients.NetworkClient - [AdminClient clientId=adminclient-1] Connection to node -1 (broker/172.18.0.3:29092) could not be established. Broker may not be available.

Я подозреваю, что URL должен быть 192.168.99.100, если мы используем панель инструментов Windows и он должен работать в сети хоста Windows.

С нетерпением ждем помощи в понимании того, почему настройки по умолчанию не работают, нужно ли нам какие-либо изменения в файле docker-compose.yaml.

1 Ответ

0 голосов
/ 15 июля 2019

TL; DR - похоже, ваша проблема в том, что ksql-datagen не может найти вашего брокера kafka.вам, вероятно, нужно установить для свойства брокера advertised.listeners значение http://broker:9092 (или KAFKA_ADVERTISED_LISTENERS для свойства kafka с докером) (см. advertised.listeners здесь - https://docs.confluent.io/current/installation/configuration/broker-configs.html)

Длинный ответ - каждый брокер (может быть, и другие модули) выставляет свой «адрес» в этом свойстве - таким образом, клиенты могут их найти. Они могут выставлять локальный адрес докера - для доступа клиентов, работающих в той же сети докеров (например, по адресу).kafka0: 9092, где kafka0 - это псевдоним внутреннего докера), localhost - для доступа клиентов, работающих на том же хосте, но вне сети (например, localhost: 9092), или они могут предоставить реальный IP-адрес хоста (доступ к которому осуществляетсяклиенты из внешнего мира, например, blabla.com:9092).

Для полного подробного и подробного объяснения я бы порекомендовал эту замечательную статью, написанную разработчиком @ confluent - https://rmoff.net/2018/08/02/kafka-listeners-explained/

...