• 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的安装目录的 esourcesdatabase文件夹里,也可以使用其它类型的数据库。

     

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

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

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

     

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

     

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

     

    9.在openfire安装目录下的pluginshazelcastclasses文件夹里找到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上会获得更佳性能。

  • 相关阅读:
    Chrome下载无后缀问题
    duilib程序HelloWorld
    go的windows下的安装包
    ASP.NET MVC异步上传图片和富文本编辑器的使用详解
    搭建go环境(windows和linux)
    构建离线Go编程指南——gotour
    判定模块加载时是否存在循环依赖
    Winform开发框架之框架演化
    为什么要写技术博
    JTREE使用例子—创建一个客户端界面
  • 原文地址:https://www.cnblogs.com/deartear/p/6074538.html
Copyright © 2020-2023  润新知