来自不同网络的 Akka 远程参与者
Akka remote actors from different networks
我在 2 个不同的网络上有 2 个系统。一个系统在 public 云中,另一个系统在 PC 上。问题是我无法远程访问 PC 系统,因为 PC 系统将本地 ip 作为主机名(例如 192.168.1.140),而在云系统上我将 ip 来自我的 public ip 指定为目标系统 ip .在路由器中,我做了一个端口转发,将来自指定端口的流量重定向到演员系统。
以下是 PC 演员系统上发生的错误:
[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 需要能够绑定到其他远程参与者系统将用于寻址的相同 IP 或主机名。如果您的 public 云中的 actor 系统将您本地机器上的系统寻址为 $MY_PUBLIC_IP,这就是您的 actor 系统需要绑定的内容。
您可以使用 DNS 来解决这个问题,方法是通过逻辑名称而不是 IP 地址来绑定和寻址参与者系统。在 /etc/hosts 中映射主机名也可以,但显然会带来维护问题。
(这将在未来的版本中改变,但您仍然需要确保您的 actor 系统可以被其他 actor 系统访问)。
已通过创建 VPN 解决,现在更加安全并且运行完美!
我在 2 个不同的网络上有 2 个系统。一个系统在 public 云中,另一个系统在 PC 上。问题是我无法远程访问 PC 系统,因为 PC 系统将本地 ip 作为主机名(例如 192.168.1.140),而在云系统上我将 ip 来自我的 public ip 指定为目标系统 ip .在路由器中,我做了一个端口转发,将来自指定端口的流量重定向到演员系统。 以下是 PC 演员系统上发生的错误:
[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 需要能够绑定到其他远程参与者系统将用于寻址的相同 IP 或主机名。如果您的 public 云中的 actor 系统将您本地机器上的系统寻址为 $MY_PUBLIC_IP,这就是您的 actor 系统需要绑定的内容。
您可以使用 DNS 来解决这个问题,方法是通过逻辑名称而不是 IP 地址来绑定和寻址参与者系统。在 /etc/hosts 中映射主机名也可以,但显然会带来维护问题。
(这将在未来的版本中改变,但您仍然需要确保您的 actor 系统可以被其他 actor 系统访问)。
已通过创建 VPN 解决,现在更加安全并且运行完美!