Я полагаю, вы запускаете Kafka на одной машине и пытаетесь получить к ней доступ с другой машины.
Это можно отладить следующим образом:
- Попробуйте проверить связь с publi c IP с вашего компьютера.
ping public_ip
- Если ping работает, попробуйте выполнить
telnet
для этого IP-адреса publi c вместе с портом сервера Kafka bootstrap. Например, telnet 1.2.3.4 9092
Если вы можете использовать lnet, это означает, что вы можете подключиться к IP-адресу publi c (здесь 1.2.3.4) и порту с вашего машина.
Если вы не можете подключиться, проверьте свои правила iptables на своем сервере Kafka. Вы можете разрешить доступ к порту извне.
Пример разрешения порта 9092.
iptables -A INPUT -p tcp --dport 9092 -j ACCEPT
Вы также можете проверить, не блокирует ли доступ какой-либо брандмауэр, например UFW или firewalld. Попробуйте отключить их или разрешите порт Kafka и проверьте.
Если вы используете OpenStack или подобное программное обеспечение, вы можете проверить там правила группы безопасности и разрешить эти порты. Это также может быть применимо к AWS.
Убедитесь, что ваш advertised.listeners
имеет IP-адрес publi c, который вы используете для подключения. По умолчанию это свойство находится в файле etc/kafka/server.properties
.
Измените его на что-то вроде (если вы используете PLAINTEXT
)
advertised.listeners=PLAINTEXT://<PUBLIC_IP>:<PORT>
Например,
advertised.listeners=PLAINTEXT://1.2.3.4:9092
advertised.host.name
кажется УСТАРЕВШИМ сейчас ( см. Документацию )