分享

Openfire集群部署不完全手册

 WindySky 2017-10-26 发布于广东

在csdn和javaeye阅读了无数的技术博客,每一篇都让本人受益匪浅,当然时间久了,很多也都忘了,呵呵。于是从现在开始自己也尝试着写技术博客,把自己工作与生活遇到的点滴分享给大家,也希望大家阅读了我的博客也能有点滴的收获,那都是对本人最大的鼓励,哈哈!
第一次写技术博客,其实不知从何入手,果然如我所想,想把一件技术事件表述清楚是一件很困难的事情。作为典型的码奴,性格孤僻、不善言辞、老实吧唧一直是我们的通病,但其实很多码奴都怀抱着Coding Changes the World的梦想;可惜在天朝,很多人包括本人,暂时也只能把Coding做为一种纯生存技能,也俗称“搬砖”….好像跑题了……

扯淡的话先不多说,现在正式开始了,哈哈!相信很多具有即时通讯功能的项目在架构时,都会了解到Openfire,当然很多有米的公司是直接使用一些服务商提供的即时通讯系统,如环信等。简简单单来了解下Openfire,Openfire就是实现了XMPP通讯协议的开源即时通讯系统,基于java实现,部署简单,稳定高效,社区活跃,集群方案较成熟、基于插件的扩展性也是相当令人称赞,项目的维护者是相当得负责任,现在也是不断地更新版本中。咋一说,赶紧去Openfire的官网瞄一眼,版本已经更新到4.0.1了!天啊噜,版本帝,您可别太快啊,公司的项目跟不上您的升级步伐啊….好吧,我们还在用着旧版本…现在开始我们的正题吧,一起来实现Openfire的集群部署。

Openfire集群部署方案

使用Openfire的集群插件Hazelcast Clustering Plugin完成openfire的集群部署;并使用Nginx作为整个openfire集群的负责均衡服务器。

集群部署服务器信息

我们这次部署的服务器信息如下,这几台服务器都是在同一个局域网下。当然我没这么多物理机器了,CentOS6.5的服务器都是我安装的虚拟机,你懂得…

这里写图片描述

我们将把两台Openfire的服务器做一个集群;当前还部署了一台前端的负载均衡服务器。这样APP客户端主要与负载均衡服务器通讯即可。

集群部署网络拓扑图

接下来看看我们这次集群部署的网络拓扑图,您会一目了然的,我相信是那样的….

这里写图片描述

部署步骤

服务器中Jdk、mysql的安装及配置步骤在此省略,大家可以去度娘哦…

1.安装openfire服务器及集群配置

在服务器192.168.0.7和192.168.0.10安装openfire服务器,两台服务器的安装步骤基本一致。注意,由于我们安装的是最新的openfiref服务器版本openfire_3_10_2.tar.gz(也许现在不是最新了),此版本需要jdk的版本在jdk7及以上,因此服务器得先安装jdk7;jdk的安装在此略过,请参考相关文献。

1.1.下载openfire

在openfire官网下载最新的安装包,由于我们安装在linux系统,请下载openfire_3_10_2.tar.gz这个安装包。

1.2.解压openfire即可

openfire_3_10_2.tar.gz放在目录/usr/local下
直接解压:
[root@centos3 local]# tar xvf openfire_3_10_2.tar.gz

这样在/usr/local目录下即可看到加压后的openfire目录
这里写图片描述

Openfire解压即可用,简单方便。

1.3.建立openfire数据库表结构

进入/usr/local/openfire/resources/database目录,拷贝openfire使用的数据库文件生成数据库表信息,在我们此次部署中,在192.168.0.132的mysql服务器中建立一个名为openfire的数据库,并使用此文件生成数据库的表结果和初始化数据。

这里写图片描述

1.4.配置openfire

Openfire安装完成之后,就可启动openfire,并开始配置。
进入openfire的bin目录启动openfire

这里写图片描述

Openfire启动完成之后,使用浏览器通过openfire的管理后台开始配置界面,openfire的管理后台默认的端口是9090;下面按步骤配置Openfire:

这里写图片描述

选择中文,下一步

这里写图片描述
Openfire的域可以随便取,但是得确保每个openfire的节点的域是一致的,在此我定义服务器的域统一为cluster.openfire。下一步

这里写图片描述

Openfire的集群所有的节点配置的数据库只能是标准的数据库,不能是openfire自带的数据库。下一步

这里写图片描述

这里写图片描述

数据库使用mysql数据库,在此配置是的192.168.0.132这个服务器上的mysql数据库,数据库名是openfire.集群中所有的节点的配置是一样的,使用同一个数据库。
这里写图片描述

修改管理员的密码,集群中的节点配置这一步时,只需修改一次即可,因为所有的节点使用的是同一套数据库。

配置完成之后,重启openfire服务器,这样服务器监听的所有端口才会全部起来。Openfire重启之后,使用admin账号重新登录管理后台,即可看到所有的服务端口已经起来。

这里写图片描述

自此,openfire的安装及初始配置完成。集群所有的节点的配置基本一致。

1.5.安装openfire集群的插件

使用admin登录管理后台,进到插件->有效插件的页面,安装
Hazelcast Clustering Plugin 插件,可能需要几分钟的时间才安装好。

这里写图片描述

安装完成之后可在插件列表看到已安装的插件

这里写图片描述

然后启动集群的功能,页面提示需要30秒左右的时间,但是实际测试10分钟都没完成,由于人与人之间信任已经完全没有了,等了10多分钟之后只有重启openfire;重启时发现openfire还不能正常关闭,只好强制kill掉openfire的进程,泪崩……

这里写图片描述

重启openfire(kill掉进程)

这里写图片描述

Openfire重启完成了,openfire集群完成,恭喜您!

这里写图片描述

可以看到目前的集群有两个节点!

2.安装Nginx并配置作为整个openfire集群的负责均衡服务器

参考文献:http://www./Linux/2015-09/122943.htm
我们选中的负载工具是Nginx(原因很简单:开源,免费)。到nginx官网下载最新版本,目前最新版本是nginx-1.9.5.tar.gz,之所以选择最新版本是因为在新版本的nginx中已经提供了tcp负载的支持,不需要再引入其他项目;
安装步骤:

2.1.使用tar 命令解压项目文件:tar -zxvf nginx-1.9.3.tar.gz

2.2.进入解压后的项目跟路径下,重新编译项目

./configure –prefix=/usr/local/nginx –with-stream
注意:
如果需要使用tcp协议的负载,在编译的时候已经要传入参数 –with-stream
系统报错,提示缺少zlib或者pcre的库,这两个库存在于系统的镜像文件中,我们根 据提示将这两个库安装即可,步骤如下:
使用yum命令安装缺少的类库:
yum install pcre*
yum install zlib*

2.3.使用make、make install 命令进行安装

先执行make命令,然后执行make install命令

2.4.修改配置

使用vi 编辑 /usr/local/nginx/conf/nginx.conf配置文件,将一下配置信息添加进去
stream {
upstream backend {
hash $remote_addr consistent;
server 192.168.0.7:5222 weight=5;
server 192.168.0.10:5222 weight=5;
}
server {
listen 5222;
proxy_connect_timeout 10s; #设置连接超时时长 必须
proxy_timeout 30s; #设置代理超时时长 必须
proxy_pass backend;
}
}
上面的配置表示,nginx监听了5222端口,并把这个端口转发到后置的Openfire集群中去。

2.5.启动nginx

最新版本的nginx的启动命令:
/usr/local/nginx/sbin/nginx
关闭命令:
/usr/local/nginx/sbin/nginx -s stop

启动完成之后即可看到负载均衡服务器监听了5222的tcp端口,openfire的客户端连接此端口进行通信。

这里写图片描述

3.使用Spark软件连接负载均衡服务器进行openfire通信

接下来我们使用Openfire官方提供的xmpp客户端软件Spark来与这个Openfire集群进行通讯,以测试集群环境是否ok。

这里写图片描述

注意我们连接是负载均衡的服务器,可以登录进去!

这里写图片描述!

说明是登陆成功的,能成功进行通讯。

然后我们进到其中一台openfire节点的管理控制台,查看会话信息,可看到当前会话列表的信息。

这里写图片描述

至此,整个Openfire的集群环境安装部署完毕,亲测可行!希望对大家有所帮助!

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多