Привязка удаленного порта 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". Тогда все заработало