ejabberd集群如何在概念上工作?

我是XMPP和ejabberd的完全新手。 如果有专家能告诉我,ejabberd“聚类”是如何工作的,我将非常感激。 我search了很多,但没有find任何关于此的规格。

它是否简单地通过http复制所有的数据(所以它不关心客户端连接)? 或者将通过DNS RR完成?

它使用Erlang的集群function: – 能够在erlang集群中的任何节点上发送任何进程的消息 – 它还使用mnesia,erlang的分布式数据库来存储路由表,其中包含JID客户端进程标识映射。

当一个消息进入ejabberd时,它在这个表中查找收件人的JID,并把它发送给它find的PID。 这个过程可以在集群中的任何地方,erlang负责路由它。

看来,集群是在DNS级别(或前端LB)上完成的,并且基础是集群数据库/持久层。 他们提供了几个这样的实现。