当前位置:  开发笔记 > 编程语言 > 正文

ejabberd群集,当主人关闭时奴隶不起作用

如何解决《ejabberd群集,当主人关闭时奴隶不起作用》经验,为你挑选了1个好方法。

我已经安装ejabberd聚类,一个是主站和另一个是如所描述的从这里.

我已将.erlang.cookie和数据库文件从master复制到slave.一切都很好.
问题是当我停止主节点时:

    然后没有请求被路由到slave.

    当尝试重新启动从属节点时,它一旦停止就不会启动.

我被困在这里,请帮帮我.谢谢



1> Mickaël Rémo..:

这是Mnesia的标准行为.如果您启动的节点不是最后一个在集群中停止的节点,那么它无法知道它是否具有最新的,最新的数据.

启动Mnesia群集的过程是以与它们关闭的相反顺序启动节点.

如果最后在Mnesia群集上看到的节点无法启动或加入群集,则需要使用Mnesia命令强制群集"master",即告诉您认为此节点具有最新内容.这是通过使用Erlang命令mnesia:set_master_nodes/1来完成的.

例如,从ejabberd Erlang命令行:

mnesia:set_master_nodes([node1@myhost]).

在大多数情况下,Mnesia群集会自动处理所有内容.当节点发生故障时,其他节点会知道并自动继续透明地工作.您需要将哪个节点设置为参考数据(with set_master_nodes/1)的唯一情况是,对于Mnesia而言这是不明确的,即在仅启动仍在运行节点时关闭的节点或存在netsplit时.

推荐阅读
pan2502851807
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有