第十三章 Openfire s2s

XMPP协议的设计与邮箱相似,每个Openfire的安装支持单个的XMPP域,且服务器到服务器(Server to Server,S2S)协议在XMPP规范中描述为把多个XMPP域连接到一起,也就是联邦(Federation)。联邦代表了XMPP横向扩展的有效方式,因为它允许一个XMPP用户能够安全地与其他联邦域的任意用户进行通信。这些联邦可以是公共的或者是私有的。联邦域可以在互联网上交换XMPP节(Stanzas),甚至可以使用基于DNS的服务查找或是地址解析进行发现。

与之相反,集群是单个XMPP域进行纵向扩展的技术,集群内的诚意共享相同的配置。集群中的每一个成员都允许任意用户在域内进行连接、授权认证、交换节。所有集群的服务器都共享单个的数据库,因此需要部署在同一个局域网内,以保持网络通信的低延迟。集群的部署适合提供运行时的冗余,而且能支持更大的用户数量和更多的连接数。

对于比较大的Openfire部署,结合联邦和集群两种技术能提供比较佳的效果。单个的XMPP域能够支持数万甚至数十万的用户,再结合联邦部署,就能达到支持百万级以上的用户规模。(来自网络)

1.集群部署

使用集群插件Hazelcast就可以实现集群部署,之前的章节有例子。

2.联邦部署

联邦部署就是不同的域不同的数据库,来使服务器之间对话。

连接步骤首先是要打开双方的端口

端口

然后设置允许其他服务器 允许

其中很重要的一点就是服务器的xmpp.domain设置被坑无数次。

3.测试

本机测试:本机Openfire 去连接另外一台Openfire

本机设置xmpp.domain:172.16.200.42 另外一台xmpp.domain:of.cluster(集群中的一台)

然后在本地hosts配置,去连接其中一台 hosts

准备完毕我们就开始测试了: admin

admin账号登录的是xmpp.domain:172.16.200.42

of.cluster

test1账号登录的是xmpp.domain:of.cluster (对应的IP172.16.200.112)

然后我们去添加账号:

添加好友

来自不同的域的添加好友请求。

接受

然后聊天: 聊天

证明不同的域之间是可以通讯的。

所以集群的方案可以是多种的,相互结合的方案。各种结合能达到更好的效果。

results matching ""

    No results matching ""