首页 > 代码库 > Openfire 集群部署和负载均衡方案

Openfire 集群部署和负载均衡方案

Openfire 集群部署和负载均衡方案

 

一.   概述

Openfire是在即时通讯中广泛使用的XMPP协议通讯服务器,本方案采用Openfire的Hazelcast插件进行集群部署,采用Haproxy进行负载均衡,在示例环境中测试通过。

二.   示例环境

服务器配置如下:

服务器名

用途

操作系统

IP

PC647

Openfire节点1

Windows7

10.200.10.11

seasky

Openfire节点2

Windows xp

10.200.10.18

Lub1

Mysql数据库

LUbuntu 12

10.200.10.12

Lub3

负载均衡器

LUbuntu 12

10.200.10.19

所用软件版本如下:

软件名称

版本号

用途

提供商

Openfire

3.10beta

Xmpp服务器

Jive Software

Hazelcast

1.3.3

Openfire集群插件

Tom Evans

Mysql server

5.5.0

配套数据库

Oracle

Haproxy

1.4.18

TCP负载均衡器

HAProxy

RooyeeMessager

3.6.1

Xmpp客户端

深圳如意通

 

三.   软件安装

  1. 在PC647和seasky上安装openfire,软件下载地址:http://download.igniterealtime.org/openfire/openfire_3_10_0_beta.exe
  2. 在lub1上安装mysql

安装命令:sudo apt-get install mysql-server

  1. 在lub3上安装haproxy.

安装命令:sudo apt-get install haproxy

四.   集群部署

1.安装openfire后启动管理控制台进行配置,

 技术分享

2.设置安装语言后进入服务器设置,设置域名信息。注意集群中每个openfire节点应该使用相同的域名。

 技术分享

3.在mysql数据库中创建openfire数据库,执行openfire_mysql.sql创建数据表,该文件位于openfire的安装目录的\resources\database文件夹里,也可以使用其它类型的数据库。

 技术分享

4.在openfire管理控制台配置数据库连接信息。

技术分享

5.在特性中使用初始设置,在随后的界面中输入管理员密码。

技术分享

6.设置完毕后登录管理控制台

 技术分享

7.切换到插件选项卡,进入有效的插件页面。

 技术分享

8.安装 Broadcast,Clustering Plugin  和Hazelcast Clustering Plugin 三个插件,注意集群中的每个节点都要安装。

 技术分享

9.在openfire安装目录下的plugins\hazelcast\classes文件夹里找到hazelcast-cache-config.xml配置文件,然后找到其中的join和interfaces配置节。

 技术分享

将其修改为以下形式:

 技术分享

其中member中是集群中各节点的IP地址和端口号,interface中是当前机器的IP地址。注意集群中的每个节点都要进行如此配置。

10.进入openfire管理控制台,切换到服务器选项卡,进入到集群页面。

 技术分享

11.在集群设置中选择“启用”并保存设置。集群中的每个节点都要做这个设置。

 技术分享

12.启用成功后集群概述中将出现各节点的信息,如下图所示。注意启动可能较慢,耗时可能在30秒到两分钟之间。

 技术分享

五.   负载均衡

1.进入haproxy所在的lub3服务器, 将当前用户加入到haproxy用户组中,本例中当前用户为lunacy

技术分享 

2.修改haproxy配置文件 haproxy.cfg,将global配置节中的user改为当前用户。

 技术分享

3.将defaults节下的mode改为tcp, option改为tcplog,并移除其它与http有关的选项。

 技术分享

4.加入listen配置节,转发openfire端口5222,7070和9090,其它端口若有需要,也可以加入。

技术分享 

5.使用修改后的配置文件启动haproxy,本例中使用如下命令:

     Sudo /usr/sbin/haproxy –f /etc/haproxy/haproxy.cfg

6. 在浏览器中输入http://10.200.10.19:9090,已经能够正常进入控制台,注意该IP地址是负载均衡器所在的服务器地址,该机器上没有安装openfire.

 技术分享

7.启动xmpp客户端rooyeemessager,在网络设置中输入ip为10.200.10.19,端口5222,点击测试后,软件提示测试连接成功。

 

技术分享 

8.使用rooyeemessager登录admin@im.quanya.com用户, 提示登录成功:

 

 技术分享

技术分享

6.至此,openfire集群部署和负载均衡已经配置完毕,分别在PC647和seasky的openfire中创建两个用户,用两个客户端在不同的机器中收发信息,证实openfire集群可以正常运行。

六.   注意事项

1.openfire和hazelcast插件的版本必须匹配,否则无法启用集群。

2.在实际的集群部署中mysql也应当配置为集群,本例中不再演示。

3.oepnfire3.10已经不支持spark2.6.3,请勿使用此软件作为测试客户端。

4.本例使用lbuntu系统,在centos或redhat上部署时使用的命令可能不同。

5.测试时不要在一台机器同时登录两个账户进行收发,有些客户端会引起混乱。

6.haproxy不提供关闭命令,如果需要关闭要使用kill杀死进程。

7.本例中openfire部署在windows上,实际中部署在linux上会获得更佳性能。

 

Openfire 集群部署和负载均衡方案