的远程部署[akka://Test/user/simpleActor]是不允许的,退回到本地



我有两个服务器:

服务器1:10.7.44.49服务器2:10.7.44.71

以及在这些服务器上运行的两个actor系统:

akka://Test@10.7.44.49:5555
akka://Test@10.7.44.71:5555

我正在尝试将一个actor从Server2远程部署到Server1。

为了实现这一点,我在Server2:的配置中进行了设置

deployment {
/simpleActor {
remote = "akka://Test@10.7.44.49:5555"
}

但我得到了:

[WARN] [09/07/2022 13:36:53.156] [sbt-bg-threads-1] [akka.remote.RemoteActorRefProvider] Remote deploy of [akka://Test/user/simpleActor] is not allowed, falling back to local.

我还尝试通过程序实现它:

val address = AddressFromURIString("akka://Test@10.7.44.49:5555")
val actorRef = system.actorOf(Props[SimpleActor]().withDeploy(Deploy(scope = RemoteScope(address))))

但结果是一样的。

关于将一个actor部署到另一个运行在不同机器上的actor系统,有什么线索吗?

参考:https://doc.akka.io/docs/akka/current/remoting.html#programmatic-远程部署

记录在此if:的else子句中

hasClusterOrUseUnsafe && shouldCreateRemoteActorRef(system, address)
  • hasClusterOrUseUnsafe返回true当且仅当配置中的akka.actor.provider = clusterakka.remote.use-unsafe-remote-features-outside-cluster = true之一

  • shouldCreateRemoteActorRef几乎肯定会是真的(除非你使用自定义的RemoteActorRefProvider,在这种情况下你基本上是自己的(

因此设置之一

akka.actor.provider = cluster
akka.remote.use-unsafe-remote-features-outside-cluster = true

最新更新