使用Akka启动多个远程服务器

时间:2012-05-04 17:38:06

标签: remoting akka

我正在使用Akka远程处理来实现一些小型搜索应用程序。

我想在一组本地集群机器上部署我的ActorSystem以将它们用作工作者,但是我对于将什么放入我的application.conf以使这种情况发生变得有点困惑。例如,我可以使用:

akka.remote {
  transport = "akka.remote.netty.NettyRemoteTransport"
  netty {
    hostname = "0.0.0.0"
    port = 2552
  }
}

每个工作人员只是在启动时运行ActorSystem。

这允许我的工作机器在启动时绑定到他们的地址,但是他们拒绝收听消息:

beaker-24: [ERROR] ... dropping message DaemonMsgWatch for non-local recipient akka://SearchService@beaker-24:2552/remote at akka://SearchService@0.0.0.0:2552

到目前为止,我发现的文档只讨论了我的localhost上的部署,这不是很有用:)。我希望有一种方法可以做到这一点,而无需为每个主机生成单独的配置。


更新

使用空字符串作为主机名允许通过普通IP地址联系主机。使用主机名本身的寻址目前不起作用。

1 个答案:

答案 0 :(得分:1)

将“0.0.0.0”设置为主机名目前基本上会禁用远程处理,因为这不是要发送到的合法IP。背景:actor引用在它们离开本地系统时,将配置的IP(或主机名)插入它们的地址部分,这正是它们的“指针主页”,供其他系统发回消息。

Scott已经做出了一项努力,使系统能够接收到不同地址here的回复,但尚未包含 - 我们可能会选择不同的解决方案来处理此问题。