Я запускаю простой брокер Zookeeper / Kafka, используя команды по умолчанию ниже, как они описаны в документации Kafka на одном компьютере (назовем это Машина A )
bin/zookeeper-server-start.sh config/zookeeper.properties
bin/kafka-server-start.sh config/server.properties
Они запускают брокера на локальном узле: 9092 на компьютере A.
I, а затем go на другом компьютере (назовем его Машина B ), который находится на той же сети и создайте получателя по умолчанию, предоставленного Kafka, вызвав этот
bin/kafka-console-consumer.sh --bootstrap-server IP_ADDRESS_HERE:9092 --topic test --from-beginning
, где IP_ADDRESS_HERE - это IP-адрес в локальной сети компьютера A, на котором размещен брокер (например, 192.168.1.10)
Все отлично работает. Затем я пытаюсь получить доступ к брокеру с компьютера за пределами моей локальной сети (назовем его Машина C). Я go настраиваю свою конфигурацию маршрутизатора и выполняю переадресацию портов для машины, на которой размещен брокер (машина A). Например, я делаю следующее
192.168.1.10:9092 --> 9094
Это означает, что я пересылаю внутренний порт 9092 устройства 192.168.1.10 (компьютер A) на порт 9094 моего маршрутизатора. Затем я go обращаюсь к такой службе, как YouGetSignal , и проверяю, открыт ли порт 9094 моего publi c IP-адреса (например, 97.190.92.128). И я получаю сообщение о том, что порт действительно открыт.
Когда я пытаюсь получить обработчик в машине A с машины C, используя следующую команду
bin/kafka-console-consumer.sh --bootstrap-server PUBLIC_IP_ADDRESS_HERE:9094 --topic test --from-beginning
Где PUBLIC_IP_ADDRESS_HERE publi c IP-адрес сети, в которой находится компьютер A (например, 97.190.92.128). Тем не менее, я получаю сообщение об ошибке, которое не может подключиться к 192.168.1.10:9092 - посредник может быть недоступен (обратите внимание, что внутренний IP: порт возвращается в ошибке, что означает, что мой маршрутизатор предоставляет информацию правильно)
Что я делаю не так?