到目前为止,我遇到的是这个 -
- 在配置中设置
ejabberd
集群master-slave
,会出现单点故障,并且即使在修复主节点(如果它出现故障)之后,集群也无法再次运行,人们也会遇到问题。有时,ejabberd
必须再次访问每个从属的实例以使它们正常工作,或者mnesia
必须再次输入命令以使主控与从属通信。 - 在配置中设置
ejabberd
集群,multi-master
然后可以将任何节点从集群中取出,而不会导致整个集群停机。基本上,没有单点故障,这也是官方文档ejabberd
告诉您通过它们在脚本join_cluster
中公开的参数进行操作的方式。ejabberdctl
但是,在这种情况下,所有数据都在两个节点之间复制,在我看来这是一个很大的性能开销。
所以归结为这一点。
什么是最好的/推荐的/流行的模式,其中ejabberd
应该设置 2 个节点的集群,主要考虑性能,但也要牢记其他关键因素(容错、负载平衡)。