3

我在使用 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

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


更新:

使用空字符串作为主机名允许通过普通 IP 地址联系主机。目前无法使用主机名本身进行寻址。

4

1 回答 1

1

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

Scott 已经做出了一项努力,使系统能够在此处接收对不同地址的回复,但这还没有包括在内——我们很可能选择了不同的解决方案来解决这个问题。

于 2012-05-06T17:22:15.580 回答