Поглотить тему кафки за NAT

У нас есть кластер кафки с 3 брокерами и 3 зоокейперами, которые работают отлично. Мы хотим получить тему от потребителя, который может получить доступ только к брокеру kafka за наттованным адресом. Можете ли вы поделиться примерами конфигурации, как это работает? Прямо сейчас, даже если поток работает, потребитель может подключиться, но, похоже, он запутался в отношении ip / hosts, что приводит к некоторому тайм-ауту io, и данный ip - это тот, который слушает кафка, а не натные адреса конечно. Я прочитал это с практическими рекомендациями: https://rmoff.net/2018/08/02/kafka-listeners-explained/ но не совсем уверен, что другой сценарий установки Apple для меня... Спасибо!

1 ответ

Хорошо, я думаю, что нашел проблему. Важно не использовать IP-адреса в server.properties для: advertised.listeners

пусть говорит что у вас есть

listeners=INTERNAL://<ip>:19092,EXTERNAL://<ip>:9092
listener.security.protocol.map=INTERNAL:PLAINTEXT,EXTERNAL:PLAINTEXT
advertised.listeners=INTERNAL://<hostname>:19092,EXTERNAL://<hostname>:9092
inter.broker.listener.name=INTERNAL

должно быть разрешимо как с точки зрения сервера вашего брокера, так и с точки зрения потребителя. Таким образом, если разрешить на вашем сервере брокера, на стороне потребителя, если он находится за nat, вы добавляете и размещаете запись в файле / etc / hosts или на вашем сервере dns, так что это будет указывать на nap ip вашего сервера брокера., Поскольку потребитель получает список от вашего брокерского кластера, ему необходимо связаться с ним. Используя имя вместо ip, вы можете быть уверены, что он найдет их там, где они есть.

Другие вопросы по тегам