1 XMPP和OpenFire的基本介绍
1.1 XMPP协议
http://baike.baidu.com/view/189676.htm
1.2 XMPP协议的实现
1.2.1 XMPP协议服务端
OpenFire
1.2.2 XMPP协议客户端
Spark、JWChat
2 OpenFire集群的搭建
2.1 安装Linux操作系统和MySQL数据库
2.2 安装JDK环境
1、利用Xshell工具将jdk安装文件jdk-7u55-linux-i586.tar.gz放到/usr/local目录中
2、解压缩文件
tar –zxvf jdk-7u55-linux-i586.tar.gz
3、将解压缩后的文件名重命名为jdk
4、用vi编辑器配置jdk环境变量
在文件最后加上如下配置:
5、vi编辑器保存修改后的文件(:wq退出),用source让刚刚编辑的文件生效
6、输入java -version命令,打印出如下信息表示jdk安装成功
2.3 安装OpenFire
1、利用Xshell工具将OpenFire的安装文件openfire_3_9_3.tar.gz传到/opt/目录下
2、利用tar命令解压缩该文件
3、启动OpenFire
4、进入网页对服务器进行配置(选择语言、数据库等)
http://localhost:9090/index.jsp
注意【数据库选择外接的数据库,不要选择默认的数据库,本测试环境安装的是MySQL数据库,所有openfire都配置到同一个MySQL数据库中】
5、安装broadcast和Hazelcast ClusteringPlugin插件【配置集群用的】
登录服务器以后,点击插件-》可用的插件,点击右侧的 + 按钮,安装Broadcast和Hazelcast ClusteringPlugin插件
6、安装好插件以后,配置/etc/hosts文件,分别配置对应Server的ip和名称
添加红色选中内容
2.4 配置OpenFire集群
1、按照2.3步骤分别在三台机器上安装好OpenFire【注意:每台机器上要分别配置好所有Openfire的ip和机器名】
2、分别修改HazelcastClustering 插件的配置文件hazelcast-cache-config.xml
先进入配置文件目录:
当然,修改文件之前备份一下文件是一个良好的习惯,所以先备份一下
用vim编辑器修改文件内容如下:
注意<interface></interface>中填写当前服务器的名称(openfires1、openfires2等,不同的机器的配置是不一样的)
3、关闭防火墙(由于openfire 集群涉及到不同机器之间的通信,防火墙可能会过滤掉这些端口之间的通信,先关掉,跑通以后在开启)
4、按照如上1-3步骤分别修改其他OpenFire机器的配置
5、启动openfire(每个客户端要分别启动)
6、别在浏览器打开三个Server的管理页
选择服务器-》Clustering->Enabled
重启openfire以后在重新登录该网页,看到如下信息,恭喜你,集群配置成功
2.5 其他说明
2.5.1 OpenFire的开启关闭等命令
/opt/openfire/bin/openfire start|stop|restart|status
分别代表Openfire的启动|关闭|重启|当前状态命令
2.5.2 安装telnet工具进行调试
1、安装telnet-server(注意:需要root权限)
2、安装telnet相关的客户端(注意:需要root权限)
3、默认情况下telnet是关闭的,需要开启,有如下两种方式:
一、使用chkconfig命令直接开启
二、直接修改配置文件
将disable = yes 改为 disable = no
4、重启xinetd,激活telnet服务
5、关闭防火墙(每个OpenFire都要关闭,这里是为了防止防火墙把openfire通信的端口给过滤掉了,后面再介绍如何开启)
6、测试不同OpenFire之间是否能通信(出现如下信息,标识openfires3分别能与openfires1和openfires2之间进行通信了,当然也可以在其他机器上连openfires3,5701是openfire集群通信的一个端口,退出telnet的命令是Ctrl + ] ,再输入close命令就能关闭连接)
2.5.3 防火墙开启情况
1、开启防火墙
2、在openfires1机器上通过telnet连接openfires3的5701端口时,发现不能连接,原因是openfires3的防火墙直接把访问该端口的请求给pass掉了
3、解决上述问题的方法是开启对5701端口的访问
保存一下:
重启防火墙让修改生效:
再查看防火墙状态
可以看到多了如下一条记录,表示可以访问5701端口了
再次在openfies1上用telnet访问openfires3的5701端口,就可以连上了
2.5.4 防火墙命令