Openfire集群部署不完全手册

来源:互联网 发布:linux i2c 驱动 实例 编辑:程序博客网 时间:2024/06/06 19:55

Openfire集群部署不完全手册

在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.linuxidc.com/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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 胃突然疼的厉害怎么办 手劳损痛的厉害怎么办 手臂扭到了很疼怎么办 寒湿导致肩膀痛怎么办 吃辣脖子肿了怎么办 脖子长了个肿瘤怎么办 一边背高一边低怎么办 生完孩子肩宽了怎么办 狗狗脖子上长囊肿怎么办 胸肋关节韧带疼怎么办 三岁宝宝有点驼背怎么办 20多岁有点驼背怎么办 五岁宝宝有点驼背怎么办 孕妇腰扭了很痛怎么办 怀孕了腰扭了疼怎么办 小龙芭比扭腰机开机没有声音怎么办 高中生训练数学计算的准确性怎么办 跑步累了跑不动了怎么办 一跑步就岔气了怎么办 婴儿关节折邹发红怎么办? 打了借条人跑了怎么办 吃凉的胃不舒服怎么办 跑步机带子跑偏怎么办 在跑步机上摔倒怎么办 弯道以后就是直线行驶怎么办 跑步机的声音大怎么办 科二一直考不过怎么办 考科目三太紧张怎么办 科目三太紧张了怎么办 跑步慢怎么办怎样跑快 铣床铣得不直怎么办 考试的时候检测仪响怎么办 吸入腐蚀性气体导致嗓子疼怎么办 孕妇已做c13检查怎么办 静电除尘器绝缘子箱温度低怎么办 高中三角函数计算总算不对怎么办 江苏高考物理考d怎么办 高二化学学不好怎么办 中考最后一次月考下滑怎么办 物联网卡网速慢怎么办 机械表长时间不带不走了怎么办