Привязка удаленного порта Netty кластера: адрес уже используется

Поэтому я пытаюсь запустить 2 экземпляра приложения Akka на моей локальной машине (в отдельных виртуальных машинах).

Когда запускается экземпляр №1, isSeedNode = true (поэтому порт связан с 2552)

Когда запускается экземпляр #2 isSeedNode = false (поэтому порт должен привязываться к 9999)

Экземпляр № 1 запускается нормально, но когда запускается экземпляр № 2, я получаю нижеприведенные исключения, которые указывают, что он не подчиняется моим настройкам порта...? Что я делаю неправильно

boolean isSeedNode = true;

Config remotingConf = ConfigFactory.parseString(
                  "  remote {"+
                  "    enabled-transports = [\"akka.remote.netty.tcp\"]\n"+
                  "    netty.tcp {"+
                  "       hostname = \"192.168.0.208\"\n"+
                  "       port = "+ (isSeedNode ? 2552 : 9999)+"\n"+
                  "       bind-port = "+ (isSeedNode ? 2552 : 9999)+"\n"+
                  "     }"+
                  " }");

Config combined = remotingConf.withFallback(appConfConfig);

system = ActorSystem.create(name,ConfigFactory.load(combined));

Мое application.conf

akka {

actor {
  provider = "akka.cluster.ClusterActorRefProvider"
    debug {
    autoreceive = on
    lifecycle = on
    unhandled = on
    }
  }
}

ИСКЛЮЧЕНИЕ выдается из экземпляра № 2 (когда экземпляр № 1 уже запущен)

Вызвано: org.jboss.netty.channel.ChannelException: Не удалось привязать к: /192.168.0.208:2552 Вызвано: java.net.BindException: Адрес уже используется

1 ответ

Решение

Проблема заключалась в том, что вместо "удаленного" пришлось указывать "akka.remote". Тогда все заработало

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