繁体   English   中英

Erlang:自动填充.hosts.erlang文件?

[英]Erlang: automatic population of .hosts.erlang file?

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

每次与新主机上的节点建立连接时,是否无法自动更新此文件?

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

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

我们开始了多播UDP路由,但后来决定只维护一个中央主机文件并使用rsync将其分发给所有主机。 我们不经常重启节点,所以它不是一个大问题。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM