AKKA:关于程序化远程部署的困惑

时间:2017-06-15 18:30:45

标签: scala akka-cluster akka-remote-actor akka-remoting

我正在使用akka remote deployment。我使用日志记录来确保演员是否已成功远程部署。这是我的日志信息

[adaptiveCEP-akka.actor.default-dispatcher-18] [akka.tcp://adaptiveCEP@127.0.0.1:2555/remote/akka.tcp/adaptiveCEP@127.0.0.1:2554/user/disjunction/simple-2555-0.4631423946172286] hi, I am simple-2555-0.4631423946172286
[adaptiveCEP-akka.actor.default-dispatcher-18] [akka.tcp://adaptiveCEP@127.0.0.1:2555/remote/akka.tcp/adaptiveCEP@127.0.0.1:2554/user/disjunction/simple-2555-0.4631423946172286] hi, I am Actor[akka://adaptiveCEP/remote/akka.tcp/adaptiveCEP@127.0.0.1:2554/user/disjunction/simple-2555-0.4631423946172286#1386676347]

似乎actor simple-2555-0.4631423946172286#1386676347disjunction actor的子actor并且都托管在同一台机器上(没有远程部署子代)。正在监督的演员是演员akka.tcp://adaptiveCEP@127.0.0.1:2555

根据Top-Level Scopes for Actor Paths

  

“/ remote”是一个人工路径,所有参与者都在其下面,其主管是远程参与者参考

我误解了什么吗?

如果需要

val randomRouter = actorSystem.actorOf(Props[Master],
      "disjunction")

Master.scala

val temp = context.actorOf(Props[SimpleClusterListener].withDeploy(Deploy(scope = RemoteScope(address))), "simple-" + port + "-" + Math.random())
temp ! "hi"

参考

Create an Akka actor remotely without a new ActorSystem

1 个答案:

答案 0 :(得分:0)

不,你的演员没有在本地部署,而是在远程机器上

akka.tcp://adaptiveCEP@127.0.0.1:2555/remote/akka.tcp/adaptiveCEP@127.0.0.1:2554/user/disjunction/simple-2555-0.4631423946172286] hi, I am simple-2555-0.4631423946172286

此日志项显示您的actor正在actor系统上运行" adaptiveCE" on" 127.0.0.1:2555"机器并由" disjunction"监督演员在" adaptiveCEP@127.0.0.1:2554"