Akka集群远程netty端口绑定:地址已被使用

Akka cluster remote netty port binding: Address already in use

所以我试图在我的本地机器上(在单独的 JVM 中)启动 Akka 应用程序的 2 个实例。

当实例 #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:地址已在使用

问题是我必须指定 "akka.remote" 而不是 "remote"。然后一切都成功了