gpt4 book ai didi

java - 如何从 akka 中的不同系统查找对远程参与者的引用?

转载 作者:行者123 更新时间:2023-12-02 08:55:21 25 4
gpt4 key购买 nike

我有一个 ActorSystem 在端口 2552 上运行,另一个在端口 2553 上运行。它们每个都创建一个实例化单例对象的 Actor。我现在想创建另一个系统来管理这两个系统,并可以引用这些参与者以便同时使用单例。

我知道参与者正在监听端口,因为它为我提供了每个端口的类似日志

 Remoting started; listening on addresses :[akka.tcp://singletonApplication@127.0.0.1:2552]

当我使用调试器查看对象时, Actor 会像这样显示

 Actor[akka://singletonApplication/user/singleton]

我使用创建经理系统

 ActorSystem system = ActorSystem.create("managerSystem");

但是当我尝试通过以下行引用远程参与者时

 system.actorSelection("akka.tcp://singletonApplication@127.0.0.1:2552/user/singleton");

它在对象中给了我这个

 ActorSelection[Actor[akka://managerApplication/deadLetters]/user/singleton]

当我尝试向它发送消息时,它会在控制台中显示死信错误日志我不太确定我做错了什么,但看起来我试图用来查找远程 Actor 的系统弄乱了我的 actorSelection 调用。我是否需要在同一系统内才能引用远程参与者?我认为这是使用 akka 的要点之一?

最佳答案

您是说您正在从不同的系统访问远程参与者。但我看到您正在使用 127.0.0.1 来寻址远程系统。 127.0.0.1是一个特殊的环回地址,指的是本地机器。因此,您需要提供可寻址的 IP 来访问远程计算机。

有关环回的更多信息,请查看此 http://en.wikipedia.org/wiki/Loopback

documentation中也明确说明了这一点:

“注意

如果您部署到多台计算机上,请务必将默认 IP 127.0.0.1 替换为系统可访问的真实地址!”

关于java - 如何从 akka 中的不同系统查找对远程参与者的引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19599347/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com