一个xmpp域是由一个或者多个ejabberd节点来提供服务的。这些节点可以运行在通过网络连接在一起的不同的机器。所有服务于一个xmpp域的ejabberd节点被称为一个集群。
所有在集群中的节点必须可以通过4369端口去和其他所有的节点相连,同时必须有同样的erlang cookie。这是因为所有的节点需要交换关于连接的用户,S2S 连接,注册的服务等等相关的信息。
每个ejabberd节点具有以下核心的模块:
1.router.
2.local router.
3.session manager. 这是用于处理客户端和服务器之间的连接。
4.S2S manager:这是一个服务器到服务器的组件。
这些核心模块不需要额外的配置就可以运行和提供服务。
因为ejbberd服务器的可扩展性非常高,绝大部分的特性是通过模块来提供的,那需要通过在配置文件里面启用。
在接下来的文章,将首先对这几个部分的原理以及源码进行分析,并将提供ejabberd开发的一般方法和过程。