1

Я построил изображение докера для kafka (wurstmeister/kafka-docker). Внутри контейнера докеров я могу создавать темы, создавать сообщения и потреблять сообщения, используя встроенные сценарии оболочки. Теперь я использую код, размещенный на https://github.com/mapr-demos/kafka-sample-programs, чтобы подключиться к kafka broker с моей главной машины. После создания и запуска программы ничего не происходит, а программа запускается. Я думаю, продюсер.send не может подключиться к kafka broker. Подсказка:Код java для производителя/потребителя не может подключиться kafka в настройке докера

+0

Чтобы проверить, является ли проблема с сетью, можете ли вы попытаться установить telnet через порты, где запущены zookeeper/brokers? Для этого: «telnet 2181» и «telnet 9092». –

+0

@ jose.goncabel Я могу использовать telnet zookeeper, но не брокер с моей главной машины. Как это можно исправить – maverick

+0

Я хотел бы вам помочь, но у меня нет опыта работы с сетью Docker, насколько я могу вам судить, вы столкнулись с сетевой проблемой. Однако я бы рекомендовал вам переписать свой вопрос, чтобы понять, как выглядит ваша структура. Где работают зоопарк, брокеры, потребители и производители, в контейнере докера или из него. –

ответ

1

Вы можете видеть, что как consumer.properties, так и producer.properties файлов в этом проекте указать bootstrap.servers=localhost:9092.

Поскольку вы не можете подключиться к dockerized службы Кафки с помощью localhost:9092, вы можете попытаться найти IP-адрес контейнера Docker, используя, например, docker inspect kafka | grep IPA (при условии, что имя вашего контейнера kafka). Затем замените localhost на этот IP-адрес в этих двух файлах свойств.

1

Я использую изображение док-станции ches/kafka. Взгляните на объяснение KAFKA_ADVERTISED_HOST_NAME.

Смежные вопросы