openfire 使用hazelcast插件实现集群配置
来源:互联网 发布:手机炒股软件ene 编辑:程序博客网 时间:2024/05/18 00:42
一、 背景介绍
出于解决项目中openfire单点问题的需要,我们项目组采用了hazelcast插件来实现openfire集群配置。
下面是我个人在虚拟机上使用hazelcast插件实现openfire集群部署的过程。
集群测试环境:
机器
IP
软件
备注
本机 win8.1
192.168.11.15
VMware10
spark
虚拟机1 centos6.5
192.168.11.214
Openfire3.9.3
虚拟机2 centos6.5
192.168.11.215
Openfire3.9.3
Mysql5.5.30
二、 在本机中用VMware创建两个虚拟机,分别安装centos系统(过程略)
三、 设置虚拟机IP和开放端口
1.配置虚拟机静态IP
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
---------------------------------------------------------
修改为:
DEVICE=eth0
HWADDR=00:0C:29:52:36:B6
TYPE=Ethernet
UUID=353d2aad-7fd1-478f-9f8a-42ccf53ab837
ONBOOT=yes
NM_CONTROLLED=yes
BOOTPROTO=none
IPADDR=192.168.11.214
PREFIX=24
GATEWAY=192.168.78.129
DNS1=8.8.8.8
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
---------------------------------------
重启网卡:
#service network restart或 #/etc/init.d/network restart
---------------------------------------------
相应的,另一台服务器配置ip为:192.168.11.215
2.开放虚拟机相关端口
端口号
用途
备注
22
系统远程管理端口
3306
mysql的默认连接端口
9090
openfire的默认管理端口
5701
该端口是openfire下的hazelcast插件集群广播通知所使用的端口
配置防火墙开放相关端口,运行命令如下:
--------------------------------------------------------------------------------------------------------------
/sbin/iptables -I INPUT -p tcp--dport 22 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport3306 -j ACCEPT
/sbin/iptables -I INPUT -p tcp--dport 9090 -j ACCEPT
/sbin/iptables -I INPUT -p tcp--dport 5701 -j ACCEPT
/etc/rc.d/init.d/iptables save
/etc/init.d/iptablesrestart
---------------------------------------------------------------------------
四、 安装mysql
Openfire实现集群需要使用标准数据库,本次测试选择在虚拟机2安装,生产环境中如有可用数据库可跳过此步骤。
安装过程(略)
五、 安装JDK并配置环境
本次安装的系统中有自带的JDK,可省略此步骤。
在shell控制台输入“java -version”如果显示javaversion …….则表示配置成功。
本文测试时发现使用centos自带java会导致openfire启动失败,报错如下:
nohup:failed to run command `/opt/openfire/jre/bin/java’: No such file or directory
解决方法如下:
cd /opt/openfire/jre/bin
cp java java.bak
rm java
ln -s /usr/bin/java java
service openfire start
六、 安装openfire
安装openfire之前,确保libgcc_s.so.1放到了根目录/lib以及 usr/lib 下。
执行: rpm-ivh openfire-3.9.3-1.i386.rpm
启动openfire
service openfire start
openfire服务启动后,可通过浏览器进行访问配置openfire。
(本文在主机中访问http://192.168.11.214:9090 )
(下图中的服务器设置,要求两个openfire的设置必须一样,包括域、端口)
(下图中数据库设置必须使用标准数据库连接)
(下图中,数据库设置-标准连接,建议两个openfire使用同一个URL,共用一个数据库,这样两个openfire就能实现完成的用户共享;不同数据库只能实现用户登录后共享session)
七、 安装插件hazelcast
安装前请务必确保您下载的hazelcast插件能被openfire版本支持。
本文中使用的是 Hazelcast Clustering Plugin 1.20
(下载地址:https://community.igniterealtime.org/external-link.jspa?url=http%3A%2F%2Fwww.igniterealtime.org%2Fprojects%2Fopenfire%2Fplugins-dev%2Fhazelcast.jar )
如果下载地址效,请自行到igniterealtime社区找。
安装插件有两种方法(任选其一即可)
1. 管理控制台安装
在按理控制台进入插件页面,可以上传本地的hazelcast.jar文件,刷新后即安装成功
2. 后台更新插件安装
把hazelcast.jar文件放到/opt/openfire/plugins/目录下,重启openfire即可。
八、 配置hazelcast实现集群
进入目录 /opt/openfire/plugins/hazelcast/classes,打开hazelcast-cache-config.xml进行编辑,添加<tcp-ip>一段设置
[root@openfireS01 ~]# cd/opt/openfire/plugins/hazelcast/classes
[root@openfireS01 classes]# ls
hazelcast-cache-config.xml
[root@openfireS01 classes]# vi hazelcast-cache-config.xml
<join>
<multicast enabled="false">
<multicast-group>224.2.2.3</multicast-group>
<multicast-port>54327</multicast-port>
</multicast>
<tcp-ip enabled="true">
<member>192.168.11.215:5701</member>
<member>192.168.11.214:5701</member>
</tcp-ip>
<aws enabled="false"/>
</join>
<interfaces enabled="true">
<interface>192.168.11.215</interface>
<interface>192.168.11.214</interface>
</interfaces>
登录管理控制台(http://192.168.11.214:9090)
进入服务器页面,选择Clustering,如图
选择Enabled,点击保存设置,启用集群。当两个openfire都启用集群后,可在控制台上看到所有的集群openfire服务器,如下图
九、 测试集群情况
从igniterealtime上下载一个spark(本文为spark_2_7_4_online.exe)安装到主机上进行测试。
分别在192.168.11.214和192.168.11.215的openfire控制台上新建一个用户,214新建用户test14,215新建用户test15, 可以发现两个openfire的用户是共享的,如下图
使用spark登录进行测试,如下图
- openfire 使用hazelcast插件实现集群配置
- openfire Hazelcast插件集群配置
- OPENFIRE 使用Hazelcast插件进行集群
- Openfire Hazelcast集群详解
- Openfire Hazelcast集群详解
- centos下Openfire安装+集群+Hazelcast插件+Haproxy
- centos7下Openfire安装+集群+Hazelcast插件+Haproxy
- hazelcast集群配置
- hazelcast集群配置
- 使用Hazelcast搭建openfire Clustering
- Hazelcast集群服务(2)——Hazelcast基本配置
- openfire集群配置
- openfire插件二次开发配置
- Hazelcast集群原理分析
- 使用openfire开发插件
- 【openfire,smack使用总结】--openfire插件开发
- OpenFire源码学习之二十九:openfire集群配置
- OpenFire源码学习之二十九:openfire集群配置
- 9. Palindrome Number Leetcode Python 2016 new Season
- 软件开发中的一些概念?
- 影响网站排名的身分有哪些
- 互联网大公司与创业公司
- java面试题
- openfire 使用hazelcast插件实现集群配置
- C语言中fstat、stat和lstat 区别
- ajax为什么会返回一段html代码
- 判断字符串中是否仅包含字母数字和汉字
- 手机测试心得
- 模拟监控VS真实用户监控!应用性能监控工具大PK
- spark集群管理问题集锦
- 简明Python教程链接
- Spring定时任务的几种实现