Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/352.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Akka远程参与者部署文档错误_Java_Akka_Remote Access_Actor - Fatal编程技术网

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