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地址设置为种子上的绑定主机名。不需要公共主机名