Назад | Перейти на главную страницу

Разрешение адресов ВМ, находящихся в разных регионах: Google Cloud

Я абсолютный новичок в Google Cloud Platform и сетях. Я пытаюсь установить связь между двумя виртуальными машинами, расположенными в разных регионах. Когда я пингую хосты или когда я использую ssh, используя IP-адрес, они являются рабочим файлом.

Но когда я пытаюсь получить доступ к виртуальной машине из Java-программы, я получаю исключение ниже. Кто-нибудь может мне помочь

java.io.IOException: Can't resolve address: kafka-3:9092
        at org.apache.kafka.common.network.Selector.doConnect(Selector.java:235) ~[kafka-clients-2.0.0.jar!/:?]
        at org.apache.kafka.common.network.Selector.connect(Selector.java:214) ~[kafka-clients-2.0.0.jar!/:?]
        at org.apache.kafka.clients.NetworkClient.initiateConnect(NetworkClient.java:864) [kafka-clients-2.0.0.jar!/:?]
        at org.apache.kafka.clients.NetworkClient.access$700(NetworkClient.java:64) [kafka-clients-2.0.0.jar!/:?]
        at org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:1035) [kafka-clients-2.0.0.jar!/:?]
        at org.apache.kafka.clients.NetworkClient$DefaultMetadataUpdater.maybeUpdate(NetworkClient.java:920) [kafka-clients-2.0.0.jar!/:?]
        at org.apache.kafka.clients.NetworkClient.poll(NetworkClient.java:508) [kafka-clients-2.0.0.jar!/:?]
        at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:239) [kafka-clients-2.0.0.jar!/:?]
        at org.apache.kafka.clients.producer.internals.Sender.run(Sender.java:163) [kafka-clients-2.0.0.jar!/:?]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
Caused by: java.nio.channels.UnresolvedAddressException
        at sun.nio.ch.Net.checkAddress(Net.java:101) ~[?:1.8.0_181]
        at sun.nio.ch.SocketChannelImpl.connect(SocketChannelImpl.java:622) ~[?:1.8.0_181]
        at org.apache.kafka.common.network.Selector.doConnect(Selector.java:233) ~[kafka-clients-2.0.0.jar!/:?]
        ... 9 more

Если вы работаете только с GCP Compute Instances, у вас есть несколько вариантов:

  1. настроить / etc / hosts со всеми жестко заданными IP-адресами и именами хостов во всех экземплярах (не рекомендуется, только для целей отладки)
  2. настройте размещенную зону Cloud DNS и создайте запись для каждого экземпляра, затем используйте DNS: https://cloud.google.com/dns/docs/overview
  3. использовать внутренний DNS, своего рода зону DNS, предоставляемую Google по умолчанию: https://cloud.google.com/compute/docs/internal-dns

У вас может быть больше вариантов, но обычно используются эти 3.