Erlang:automatic population of.hosts.Erlang文件?

Erlang:automatic population of.hosts.Erlang文件?,erlang,distribution,Erlang,Distribution,我正在使用net_adm:world()连接到其他主机上的节点,但实现这一点的唯一方法是手动创建主机文件并在文件中列出其他主机的名称。如果我有10台主机,我必须将此文件放在所有10台计算机上,并在每次向集群添加新主机时更新列表10次 是否无法在每次连接到新主机上的节点时自动更新此文件?您的.hosts.erlang文件不需要完整或100%正确。一个节点只需要相互连接就可以了解集群中的其他节点 您可以跳过维护.hosts.erlang文件,并使用mutlicast UDP动态发现节点。参见示例代码

我正在使用net_adm:world()连接到其他主机上的节点,但实现这一点的唯一方法是手动创建主机文件并在文件中列出其他主机的名称。如果我有10台主机,我必须将此文件放在所有10台计算机上,并在每次向集群添加新主机时更新列表10次


是否无法在每次连接到新主机上的节点时自动更新此文件?

您的.hosts.erlang文件不需要完整或100%正确。一个节点只需要相互连接就可以了解集群中的其他节点

您可以跳过维护.hosts.erlang文件,并使用mutlicast UDP动态发现节点。参见示例代码

我们开始使用多播UDP路由,但后来决定只维护一个中心主机文件,并使用rsync将其分发给所有主机。我们很少重新启动节点,因此问题不大。

我们用于为属于集群的节点预填充
.hosts.erlang
文件。函数
net\u adm:world()
可用于确定当前属于群集的节点,这些节点不一定与所包含的
.hosts.erlang
匹配,例如,当其中一个节点关闭时。使用
net\u adm:world()
的替代方法是使用函数
net\u adm:world\u list(Hosts)
,该函数获取主机列表(而不是从
.Hosts.erlang
读取),并执行与
net\u adm:world()
相同的操作来确定当前连接的节点