是否可以在NAT后面运行akka节点(每个节点都在单独的nat后面,公共端口是DNAT到私有)?目前我正在尝试在docker容器中部署akka节点。 Docker是natting公共端口到实例私有端口,问题是akka节点的地址是从akka.remote.netty.tcp.hostname创建的,但在natted环境中它与面向公共端口的主机名不同。来自公共接口的消息被拒绝,因为akka绑定到私有ip。是否可以更改akka节点地址而不是尊重akka.remote.netty.tcp.hostname,假设当前节点地址为akka.tcp://ClusterSystem@172.16.10.5:2551,其中172.16.10.5是akka.remote.netty .tcp.hostname,但我想将其更改为akka.tcp://ClusterSystem@10.2.0.222:2551,其中10.2.0.222是公共可访问的地址,但akka仍应该在172.16.10.5:2551上监听。 p>
答案 0 :(得分:2)
也许你可以指示Akka或Netty绑定特定的地址和端口,但是在另一个地址和端口上宣布自己。我不太了解Akka或Netty,知道它是否可能。
否则,您可以尝试三件事:
0.0.0.0
,然后执行“身份端口绑定”,即docker run -p 1234:1234 …
这将暴露端口容器外面的1234到容器内的端口1234(从而稍微减轻了NAT); 答案 1 :(得分:2)
是的,这是可能的 - 除了通常的bind-host
和bind-port
之外,您还需要配置host
和port
进行远程处理。
Typesafe subscription customers。
自Akka 2.4.x以来,对此的本机支持已经出来了;和{{3}}的2.3.11。