Java Akka远程参与者部署文档错误
我创建了一个简单的场景。 以下参与者系统:Java Akka远程参与者部署文档错误,java,akka,remote-access,actor,Java,Akka,Remote Access,Actor,我创建了一个简单的场景。 以下参与者系统: akka.tcp://TestSystem@127.0.0.1:2560 akka.tcp://TestSystem@127.0.0.1:2570 akka.tcp://TestSystem@127.0.0.1:2580 想法是从127.0.0.1:2570创建一个“SampleActor”,但使用文档中所述的配置将actor创建部署到127.0.0.1:2560: 然后在127.0.0.1:2570: system.actorOf(Props.cr
akka.tcp://TestSystem@127.0.0.1:2560
akka.tcp://TestSystem@127.0.0.1:2570
akka.tcp://TestSystem@127.0.0.1:2580
想法是从127.0.0.1:2570创建一个“SampleActor”,但使用文档中所述的配置将actor创建部署到127.0.0.1:2560:
然后在127.0.0.1:2570:
system.actorOf(Props.create(SampleActor.class), "sampleActor");
现在从127.0.0.1:2580开始,我想找到远程部署的参与者并发送一条消息。根据文件:
然而,这不起作用。它在127.0.0.1:2560上找不到演员。但如果我改为:
ActorSelection selection =
system.actorSelection("akka.tcp://TestSystem@127.0.0.1:2570/user/sampleActor");
selection.tell("Pretty slick", ActorRef.noSender());
不同之处在于,在第一种情况下,我在寻找部署它的参与者,在本例中是127.0.0.1:2560,正如文档所说,在第二种情况下,我在寻找定义参与者创建的参与者,在本例中是127.0.0.1:2570。为什么会发生这种情况?这是没有意义的,如果我正在寻找一个远程演员,那么我应该看看它部署的地方,对吗?
在部署的参与者处打印父级时,我还得到:
akka://TestSystem/remote/akka.tcp/TestSystem@127.0.0.1:2570/user
这让它变得更加混乱,因为它与文档中描述的内容不同:所有这些都让它变得非常混乱,文档非常长,并且没有正确地解释如何正确地完成一些基本的事情。有人能帮我理解这个问题吗?很显然,这就是akka的工作原理,它很令人困惑。最后,您应该始终向“部署者”而不是被部署者发送消息。“部署者”将依次向“部署者”发送消息。所有与远程部署相关的事情都遵循同样的原则。很显然,akka就是这样工作的,这让人很困惑。最后,您应该始终向“部署者”而不是被部署者发送消息。“部署者”将依次向“部署者”发送消息。与远程部署相关的所有内容都遵循相同的原则。您是否启用了远程功能@加斯顿:当然,我的意思是,它可以像我解释的那样工作,但在将端口设置为已部署端口时不行。您启用了远程功能吗@gaston当然是这样,我的意思是它可以像我解释的那样工作,但在将端口设置为已部署端口时不能工作。
ActorSelection selection =
system.actorSelection("akka.tcp://TestSystem@127.0.0.1:2570/user/sampleActor");
selection.tell("Pretty slick", ActorRef.noSender());
akka://TestSystem/remote/akka.tcp/TestSystem@127.0.0.1:2570/user