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登录[email protected]用户, 提示登录成功:

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

时间: 2024-08-24 17:43:49

Openfire 集群部署和负载均衡方案的相关文章

ASP.NET Core使用Docker-Swarm集群部署实现负载均衡实战演练

一.需求背景 人生苦短,我用.NET Core!阿笨对Docker是这样评价的:Docker在手,环境我有!Docker出手,集群我有!前面的Doc基础课程我们学习了如何使用Docker来部署搭建单机容器应用.当一台服务器的处理能力.存储空间不足时,不要企图去换更强大的服务器,对大型网站而言,不管多么强大的服务器,都满足不了网站持续增长的业务需求.实践中会发现,生产环境中使用单个 Docker 节点是远远不够的,搭建 Docker 集群势在必行.然而,面对 Kubernetes, Mesos等众

Dubbo之旅--集群容错和负载均衡

当我们的系统中用到Dubbo的集群环境,因为各种原因在集群调用失败时,Dubbo提供了多种容错方案,缺省为failover重试. Dubbo的集群容错在这里想说说他是因为我们实际的项目中出现了此类的问题,因为依赖的第三方项目出现异常,导致dubbo调用超时,此时使用的是默认的集群容错方式,而配置的reties='3',这样前段系统连续掉用了三次服务,结果可想而知. 先说一下各节点关系: 这里的Invoker是Provider的一个可调用Service的抽象,Invoker封装了Provider地

实践出真知——一文教你搭建Nginx+Tomcat集群,实现负载均衡及动静分离

实践出真知--一文教你搭建Nginx+Tomcat集群,实现负载均衡及动静分离 前言 ? 想必大家对于Nginx和Tomcat都非常熟悉了,Nginx的应用非常广泛,不仅是对web静态资源非常友好,而且也是非常实用的反向代理和负载均衡软件.结合后端Tomcat的服务,从而搭建Nginx+Tomcat集群. ? 对于直接想要实践的朋友而言可以获取本文的链接中的软件包后直接看第三备份的内容. 一.集群搭建结构及拓扑 1.1集群架构图示 Nginx+Tomcat集群的结构示意图如下: 1.2系统环境与

Apache反向代理结合Tomcat集群来实现负载均衡(一)

好的博文一般都能做到"望题知文",看下标题就知道下边要讲的内容,写这个标题时犹豫了一下,本来要将标题定位apache+tomcat实现负载均衡,可是又觉得这样显得比较模糊,后来想了一下,觉得利用Apache做负载均衡底层结合的是tomcat的集群功能,所以便用了这个标题. 首先先做下集群与负载均衡的概念区分,很多人一直都不理解这两个概念,不知道该如何区分这两个概念,又觉得这两个概念仿佛是一个技术的两个术语,其实不然,下边介绍下这两个概念: 什么是集群(Cluster) 所谓集群是指一组

Apache反向代理结合Tomcat集群来实现负载均衡(一)、概念理解

好的博文一般都能做到"望题知文",看下标题就知道下边要讲的内容,写这个标题时犹豫了一下,本来要将标题定位apache+tomcat实现负载均衡,但是又认为这样显得比較模糊.后来想了一下,认为利用Apache做负载均衡底层结合的是tomcat的集群功能.所以便用了这个标题. 首先先做下集群与负载均衡的概念区分,非常多人一直都不理解这两个概念,不知道该怎样区分这两个概念,又认为这两个概念仿佛是一个技术的两个术语,事实上不然,下边介绍下这两个概念: 什么是集群(Cluster) 所谓集群是指

Apache反向代理结合Tomcat集群来实现负载均衡(四)、Apache反向代理

上文中主要介绍了tomcat的集群方式,下边再来说下apache的反向代理.反向代理可以这样来理解,我们通常认为的代理(正向代理)是局域网内部机器本身不能上网,网关可以上网,大家在局域网内是通过网关上网的,这个网关就是个代理机器.反向代理意思就反了过来,现在网关并不是给内部局域网做代理的,而是给外部请求内部局域网做代理的,例如,当前一个应用系统在局域网内的A机器上,外部网络不能直接访问A机器,而是通过网关访问到了A,这里网关就是个反向代理了. 总结:正向代理---为在防火墙内的局域网客户端提供I

企业集群平台LVS负载均衡算法分析与实现

一.LVS集群常见架构图 Load Balancer层:位于整个集群系统的最前端,由一台或多台负载调度器(Director Server)组成.LVS核心模板IPVS就安装在Director Server上,而Director的主要作用类似于一个路由器,它含有为完成LVS功能所设定的路由表,通过这些路由表把用户的请求分发给Server Array层的应用服务器(Real Server).同时,在Director Server上还要安装对Real Server的监控模块Ldirectord,此模块

MySQL集群安装、负载均衡及备份恢复

MYSQL集群安装学习笔记 [一]服务器准备(操作系统linux皆可,我用的是RHEL6.4):一个管理节点 10.101.4.32两个数据节点 10.101.4.33 10.101.4.34两个查询节点 10.101.4.36 10.101.4.37 下载最新版本的mysql(我用的是 mysql-cluster-gpl-7.3.7-linux-glibc2.5-x86_64.tar) [二]所有节点配置:1.hosts配置,增加所有节点IP与主机名对应 2.增加mysql用户和组, 并将my

Windows 集群和网络负载均衡笔记

Cluster 集群 NLB 双机热备群群 COM组件群集 群集 NLB  技术的应用场景 镜像WEB站点 终端服务器的负载均衡 负载均衡网关 StarWind FreeiSCSI Target它可以将Windows服务器变成一个存储服务器或是一个SAN. 相对其他的其他的SAN或iSCSI设置更容易,且在可较少资源的使用,尤其在测试群集或其他需要用到共享存储的场合.如在虚拟机中测试windows或Linux.虚拟化等时,可在物理机上安装该软件,并提供iSCSI服务来共享本地的存储.这样就可以避