阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

144次阅读
没有评论

共计 2759 个字符,预计需要花费 7 分钟才能阅读完成。

一.  概述

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 后启动管理控制台进行配置,

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

将其修改为以下形式:

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

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

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

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

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

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

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

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

五.  负载均衡

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

 

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

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

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 上会获得更佳性能。

CentOS 下 Openfire 详细安装过程 http://www.linuxidc.com/Linux/2012-09/69539.htm

CentOS 5.4 下基于 Jabber/XMPP 协议的 Openfire 服务器配置笔记 http://www.linuxidc.com/Linux/2012-02/55497.htm

Ubuntu 12.04 安装 Openfire http://www.linuxidc.com/Linux/2012-07/64945.htm

Openfire 在使用 MySQL 数据库后的中文乱码问题解决 http://www.linuxidc.com/Linux/2014-03/97989.htm

通过 Nginx 实现 Openfire 集群的负载均衡  http://www.linuxidc.com/Linux/2015-09/122943.htm

Openfire 的启动过程与 session 管理  http://www.linuxidc.com/Linux/2016-08/134021.htm

Openfire 的详细介绍 :请点这里
Openfire 的下载地址 :请点这里

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2016-11/137301.htm

正文完
星哥说事-微信公众号
post-qrcode
 
星锅
版权声明:本站原创文章,由 星锅 2022-01-21发表,共计2759字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中