AWS上的Akka种子节点删除其所有消息,因为它们没有';无法匹配入站地址

AWS上的Akka种子节点删除其所有消息,因为它们没有';无法匹配入站地址,akka,akka-cluster,akka-remote-actor,akka-remoting,Akka,Akka Cluster,Akka Remote Actor,Akka Remoting,我发现了很多文档较少的配置选项可供使用,但我似乎无法配置种子节点,使其既可以与自身联系,也可以与其他节点联系 目前,我已将其配置为: akka { cluster.multi-data-center.self-data-center = asia remote.netty.tcp.hostname = "xxx.xx.xx.5" remote.netty.tcp.public-hostname = "xx.xx.xxx.51" cluster.seed-nodes =

我发现了很多文档较少的配置选项可供使用,但我似乎无法配置种子节点,使其既可以与自身联系,也可以与其他节点联系

目前,我已将其配置为:

akka {
  cluster.multi-data-center.self-data-center = asia  
  remote.netty.tcp.hostname = "xxx.xx.xx.5"  
  remote.netty.tcp.public-hostname = "xx.xx.xxx.51"  
  cluster.seed-nodes = ["akka.tcp://application@xxx.xx.xx.5:1551"]  
  enforce-ip-family = false
  dns-use-ipv6 = false
}
在此配置中,节点可以作为种子节点连接到自身并自行运行,但尝试通过
公共主机名与之联系的其他节点会丢弃其消息:

2018-01-25 19:29:56934[错误]:应用程序中的akka.remote.EndpointWriter-akka.actor.default-dispatcher-5- 正在删除非本地收件人[actor[akka.actor.ActorSelectMessage]的邮件[class akka.actor.ActorSelectMessage]。tcp://application@xx.xx.xxx.51:1551/]。tcp://application@xx.xx.xxx.51:1551]入站地址为[akka。tcp://application@xxx.xx.xx.5:1551]

我的研究表明。也许不是?我尝试了相反的方法,将主机名设置为公共IP,并将
绑定主机名
配置为使种子节点能够连接到自身的IP:

akka {
  cluster.multi-data-center.self-data-center = asia  
  remote.netty.tcp.hostname = "xx.xx.xxx.51"  
  remote.netty.tcp.bind-hostname = "xxx.xx.xx.5"  
  cluster.seed-nodes = ["akka.tcp://application@xxx.xx.xx.5:1551"]  
  enforce-ip-family = false
  dns-use-ipv6 = false
}
然后我在相反的方向上遇到了同样的悖论:

2018-01-25 19:39:08207[警告]:application-akka.actor.default-dispatcher-4- 尝试[3]次后无法加入种子节点,将重试。种子节点=[akka。tcp://application@xxx.xx.xx.5:1551]

2018-01-25 19:38:48168[错误]:应用程序中的akka.remote.EndpointWriter-akka.actor.default-dispatcher-6- 正在删除非本地收件人[actor[akka.actor.ActorSelectMessage]的邮件[class akka.actor.ActorSelectMessage]。tcp://application@xxx.xx.xx.5:1551/]。tcp://application@xxx.xx.xx.5:1551]入站地址为[akka。tcp://application@xx.xx.xxx.51:1551]

种子节点现在无法连接到自身,因为
xx.xx.xxx.51
已接管作为入站地址


我还尝试使用
公共主机名
绑定主机名
,但没有成功。

通过使用外部.51地址作为所有节点(包括种子本身)的配置种子,我能够让种子绑定到自身,并可供其他节点使用,以及种子的akka.remote.netty.tcp.hostname。我还将内部.5地址设置为种子上的绑定主机名。不需要公共主机名