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

时间:2015-12-15 22:17:01

标签: akka akka-cluster

所以我试图在我的本地机器上(在单独的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抛出EXCEPTION(当实例#1已经运行时)

引起:org.jboss.netty.channel.ChannelException:无法绑定到:/192.168.0.208:2552     引起:java.net.BindException:地址已在使用中

1 个答案:

答案 0 :(得分:0)

问题是,而不是"远程"我必须指定" akka.remote"。然后一切正常