【发布时间】:2019-04-21 14:21:43
【问题描述】:
亲爱的,
我遇到了关于 Erlang 集群的问题。在我的集群工作了很长时间后,有一天,我无法与集群中的特定节点(例如 SickNode@X.X.X.X)建立任何连接,net_adm:ping(SickNode@X.X.X.X) 返回了一个痛苦的答案。即使使用:
erlang -name abc@X.X.X.X -setcookie MYCOOKIE -remsh SickNode@X.X.X.X
也返回失败结果。
奇怪的是,SickNode@X.X.X.X 在集群中的其他节点上运行良好。 当一个新节点加入集群并 ping 到 SickNode 时,问题刚刚发生。
这里没有任何防火墙,因为集群中的所有节点都运行良好。有没有人遇到这种糟糕的情况? Erlang 对于集群使用不稳定?
PS:我正在使用 Erlang/OTP 20 和 Centos 6.8
非常感谢!!!
【问题讨论】:
-
两个问题:1.你能从你的新节点ping其他节点(即不是SickNode@X.X.X.X的节点)吗? / 2. 你能从 SickNode@X.X.X.X ping 你的新节点吗?
-
1.我可以从新节点 ping 到除 SickNode 之外的所有其他节点。一个 pong 结果返回到新节点。/ 2. 从 SickNode,我无法 ping 到任何新节点。在 SickNode 中,使用 netstat 时,我可以看到旧连接保持不变。感谢您的帮助!
-
所以……我知道你说过“SickNode@X.X.X.X 在集群中的其他节点上运行良好。”但仍然…… 3. 从 SickNode,你能 ping 其他节点吗(即不是新节点,只是其他一些健康的节点)? / 4. 从其他健康节点,你能ping SickNode吗? / 5.你检查过SickNode中的cookie还是'MYCOOKIE'吗?也许在该节点连接到集群后它发生了变化……
-
我可以从病态节点对健康节点进行 ping pong,反之亦然。新节点只会出现问题。我认为您是对的,也许 cookie 已更改。但我想知道,是什么原因导致 cookie 发生了变化?虽然病态节点已经运行了很长时间。感谢您的帮助!
标签: erlang cluster-computing erlang-shell erlang-ports