在分布式应用程序的上下文中完成时,我遇到了关于 net_adm:ping/1 的不同行为。
我有一个应用程序,它在启动时 ping 一个众所周知的节点,并以这种方式发现连接节点网格中的所有节点。
当我在单个节点(非分布式配置)上启动此应用程序时,net_adm:ping/1 后跟节点/0 报告 4 个其他节点(这是正确的)。4个节点在2个不同的物理机上,所以返回的是下面的n1@machine_1, n2@machine_2, n3@machine_2, n4@machine_1(实际返回的是ip地址,不是machine_x)。
当属于双节点分布式应用程序时,在应用程序启动的节点上,net_adm:ping/1 后跟一个节点/0 报告 2 个节点,每台机器一个(n1@machine1,n2@machine2)。在大约 750 毫秒延迟后再次调用 nodes/0 会导致找到正确的 5 个节点。我的应用程序需要三个缺失节点中的两个才能正常工作,因此,如果找不到它们,应用程序就会死掉。
我正在使用 R15B02
当网格中的一些节点参与分布式应用程序配置时,关于传递节点发现过程的延迟是否已知不同?