目前我看到的是-
- 在
master-slave
配置中设置ejabberd
集群,会出现单点故障,并且即使在修复了主服务器(如果它宕机)之后,集群也无法再次运行。有时,每个slave的ejabberd
实例必须重新访问以使它们正常工作,或者必须再次输入mnesia
命令以使主服务器与slave通信。 - 在
multi-master
配置中设置ejabberd
集群,然后可以将任何节点从集群中取出,而不会使整个集群崩溃。基本上,没有单点故障,这也是ejabberd
的官方文档通过ejabberdctl
脚本中公开的join_cluster
参数告诉您的方法。然而,在这种情况下,所有的数据都是跨两个节点复制的,这在我看来是一个很大的性能开销。
所以它归结为这个。
最好/推荐/流行的2节点ejabberd
集群设置模式是什么?主要考虑性能,同时考虑其他关键因素(容错,负载平衡)
ejabberd中只有一个模式。基本上,它的工作原理就像你所说的多大师。主从服务器基本上是相同的设置,没有任何流量通过负载平衡机制发送到第二个节点。
所以情况2是可行的