具有绑定端口和绑定主机名的Akka集群
按照Akka FAQ的规定,在application.conf中configurationbind-hostname和bind-port后,启动集群,我收到一个错误消息:
[ERROR] [07/09/2015 19:54:24.132] [default-akka.remote.default-remote-dispatcher-20] [akka.tcp://default@54.175.105.30:2552/system/endpointManager/reliableEndpointWriter-akka.tcp%3A%2F%2Fdefault%4054.175.105.30%3A2552-757/endpointWriter] dropping message [class akka.actor.ActorSelectionMessage] for non-local recipient[Actor[akka.tcp://default@54.175.105.30:32810/]] arriving at [akka.tcp://default@54.175.105.30:32810] inbound addresses are [akka.tcp://default@54.175.105.30:2552]
这似乎是说演员已经收到一个消息32810(外部端口),但由于内部端口(2552)不匹配而丢弃。
该文件的相关部分是:
hostname = 54.175.105.30 port = 32810 bind-hostname = 172.17.0.44 bind-port = 2552
我已经在2.4-M1,2.4-M2和2.4-SNAPSHOT上试过了,所有的效果都一样。
有没有其他人遇到过这个? 有什么build议么?
编辑:这个演员系统在docker集装箱的ECS中运行。 docker容器configuration设置为从容器的专用IP上的临时范围转发到2552。 ECS正在成功将hostname:port映射到bind-hosname:bind-port。 参与者正在成功运行并绑定到本地绑定主机名和绑定端口,但正在丢弃消息并发出上述错误。
bind-*
configuration设置意味着在Akka节点在NAT后面(或在docker容器中)启动的情况下使用。 您是否hostname
: port
地址转换configuration为bind-hostname
: bind-port
?
在你的特定configuration,当你这样做
ctx.actorSelection(“akka.tcp://default@54.175.105.30:32810 / user / actor”)! “嗨”
那么54.175.105.30
某54.175.105.30
应该监听TCP端口32810
并将端口转发到172.17.0.44:2552
。 参与者系统应该在172.17.0.44:2552
提供的configuration下运行。 这是这种情况吗?
此外,您必须为NAT后面的每个节点进行configuration,因为Actor系统之间的连接是对等的 。
这是由于我的configuration错误。 剩下的一些样板代码覆盖了绑定端口。
- 从Docker容器loginAWS Cloudwatch
- AWS S3 Elastic Beanstalk Docker – / dev / fus:操作不允许
- 更新ECS中的任务定义
- 在ec2-server上运行应用程序和在ec2-server的docker上运行应用程序有什么区别?
- 如何从Cloud Formation获得Elastic Container Repository URI?
- 在AWS上远程debuggingNodeJS容器
- 弹性beanstalk中的RDS ENVvariables
- 在Amazon ElasticBeanstalk中使用docker或自定义AMI
- Kubernetes是否均匀分布在ec2集群中?