gpt4 book ai didi

java - 来自不同网络的 Akka 远程 Actor

转载 作者:行者123 更新时间:2023-12-02 04:50:18 24 4
gpt4 key购买 nike

我在 2 个不同的网络上有 2 个系统。一个系统位于公共(public)云中,另一个系统位于 PC 上。问题是我无法远程访问 PC 系统,因为 PC 系统将本地 ip 作为主机名(例如 192.168.1.140),而在云系统上,我将公共(public) ip 中的 ip 指定为目标系统 ip。在路由器中,我进行了端口转发,将指定端口上的流量重定向到参与者系统。以下是PC actor系统上出现的错误:

[ERROR] [03/27/2015 14:57:54.712] [slave-port-akka.remote.default-remote-dispatcher-6] [akka.tcp://pc-system@192.168.1.140:20007/system/endpointManager/reliableEndpointWriter-akka.tcp%3A%2F%2Fxxx%40192.168.1.183%3A2005-0/endpointWriter] dropping message [class akka.actor.ActorSelectionMessage] for non-local recipient [Actor[akka.tcp://pc-system@my_public_ip:20007/]] arriving at [akka.tcp://pc-system@my_public_ip:20007] inbound addresses are [akka.tcp://pc-system@192.186.1.140:20007] 

谢谢你,马吕斯!

最佳答案

Akka 需要能够绑定(bind)到其他远程 Actor 系统用来寻址的相同 IP 或主机名。如果您的公共(public)云中的执行组件系统将本地机器上的系统寻址为 $MY_PUBLIC_IP,那么您的执行组件系统需要绑定(bind)到该地址。

您可以使用 DNS 通过逻辑名称(而不是 IP 地址)绑定(bind)到参与者系统并对其进行寻址来解决此问题。在/etc/hosts 中映射主机名也可以,但显然会带来维护问题。

(这将在未来的版本中发生变化,但您仍然需要确保其他 Actor 系统可以访问您的 Actor 系统)。

关于java - 来自不同网络的 Akka 远程 Actor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29301546/

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