Вам необходимо правильно установить KAFKA_ADVERTISED_LISTENERS
.
На данный момент KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://localhost:9092
означает, что любой клиент, подключающийся к брокеру, получит localhost
в качестве адреса брокера, по которому он будет подключаться для последующих запросов.
Если клиент не работает на брокере (которого здесь нет), вам необходимо изменить эту конфигурацию. Для запуска в автономной среде Docker это достаточно просто:
KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:29092,PLAINTEXT_HOST://localhost:9092
Теперь любое клиентское соединение должно быть kafka:29092
. Это также означает, что вы можете подключить клиент , работающий на хосте Docker , к брокеру Kafka, что может быть полезно, например, при работе на ноутбуке и локальном запуске клиента.
Здесь - пример Docker Compose, показывающий это в действии.
Для получения дополнительной информации и справочной информации см. https://rmoff.net/2018/08/02/kafka-listeners-explained/