来自文档@ http://docs.ejabberd.im/admin/guide/clustering/#clustering-setup
通过在同一网络中启动新的ejabberd节点并从群集节点运行命令,可以将节点添加到群集中。例如,在第二个节点上,当ejabberd已经启动时,使用ejabberdctl脚本运行以下命令作为ejabberd守护程序用户:
ejabberdctl join_cluster 'ejabberd@first'
这如何转化为云中的部署 - 实例可以(希望)基于一致的图像并在负载均衡器后面关闭/重新启动?
在上面的示例中,所有这些(包括初始实例)都可以使用“example.com”作为“第一个”(假设“example.com”在DNS中设置为指向云负载均衡器)?
或者第一个实例必须不尝试加入群集,后续的所有实例都使用该初始实例的ip地址而不是“first”(如果是这种情况 - 如果初始实例发生故障,它会变得很古怪吗? )?
答案 0 :(得分:1)
所有这些,包括初始实例,都可以使用" example.com" as" first"在上面的示例中(假设" example.com"在DNS中设置为指向云负载均衡器)?
不,节点名称参数是Erlang ejabberd节点的节点名称。它应该更多地位于亚马逊内部网络上,而不是公共网络上,因此它不应该依赖于中央DNS。它必须是Erlang节点的名称,作为新启动的节点,连接到现有节点以共享相同的"集群模式"并进行数据的初始同步。
因此,部署完成如下:
您只需为每个额外的群集节点执行一次群集配置。所有节点的配置都保留在本地,因此当您停止并重新启动节点时,它将在正确设置后自动重新加入群集。