共计 6697 个字符,预计需要花费 17 分钟才能阅读完成。
运行环境准备
Openfire 目前算是国内及时通讯应用中普及率最高的消息中间件了,由于最近的项目中使用到了 Openfire 这个东西,所以不得不研究一下,从最基本的安装开始:
环境准备
1、系统环境 Linux:RedHat 6.5
2、jdk 版本:1.7
1、jdk 安装
下载 jdk 1.7 的 linux 64bit 版本,的 tar.gz 文件
通过 tar czvf jdk.tar.gz -C /usr/java
配置环境变量
通过 VI 编辑器编辑 /etc/profile 文件
在该文件中添加,一下代码
export JAVA_HOME=/usr/java/jdk_1.7.10
export CLASSPATH=/usr/java/jdk_1.7.10/lib
export PATH=$JAVA_HOME/bin:$PATH
2、安装 openfire
将 openfire 的 rpm 文件放到 /usr/ 目录下
通过 rpm -ivh openfire.rpm 命令执行安装
安装成功之后
通过 /etc/init.d/openfire start 启动
ps:
关闭命令 /etc/init.d/openfire stop
重启命令 /etc/init.d/openfire restart
OK!openfire 的环境就此准备完成
Openfire 安装配置
Openfire 选择的版本:openfire-3.10.2-1.i386.rpm 之所以选择这个版本是因为这个版本提供了 broadcast 与 Hazelcast Clustering Plugin 这两个集群所需要的插件,当然 openfire 还有其他方式实现集群配置,我们选择 openfire 官方建议的方式实现集群,很简单。
————————————– 分割线 ————————————–
CentOS 下 Openfire 详细安装过程 http://www.linuxidc.com/Linux/2012-09/69539.htm
CentOS 5.4 下基于 Jabber/XMPP 协议的 Openfire 服务器配置笔记 http://www.linuxidc.com/Linux/2012-02/55497.htm
Ubuntu 12.04 安装 Openfire http://www.linuxidc.com/Linux/2012-07/64945.htm
Openfire 在使用 MySQL 数据库后的中文乱码问题解决 http://www.linuxidc.com/Linux/2014-03/97989.htm
通过 Nginx 实现 Openfire 集群的负载均衡 http://www.linuxidc.com/Linux/2015-09/122943.htm
————————————– 分割线 ————————————–
1、选择语言
中文简体
2、服务器设置
如果是集群配置,必须注意域名要保持一致
3、数据库设置
注意:必须选择 标准数据库连接,如果是集群配置,那么数据源必须所有节点都相同
4、外形设置
注意:选择我们选择的是 ldap 配置
ldap 配置注意目录要选择:Active Directory
映射关系要跟 ldap 中的配置一致,如果是配置集群环境,在配置完第一台机器后,其他节点 ldap 的用户映射图就可以默认设置了(默认设置是通过数据源取得的)
5、管理员设置
好了,完成一社设置就算是收功了!
下面就可以进入管理页面了,在管理页面安装我们的插件:jlpush(消息推送插件)、archive(消息记录插件)以及集群部署所用到的 broadcast、hazelcast 插件(这两个插件可以到可用插件中选择安装)
安装过程非常简单,点击导航中的 [插件] 按钮,选择需要安装的插件,然后上传就可以了,当安装成功后,所安装的插件就会显示在列表中
图示:
可用插件列表,默认为空,可以点击 立即升级,之后会显示出官网提供的所有未安装的可用插件
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-09/122955p2.htm
Openfire 集群配置
openfire 集群配置的可选方案目前有三种
1、基于 Oracle 的 coherence 实现 —– 较早版本的官方实现,目前用户量比较大(但是 openfire 官方已经放弃了这种集群方案)
2、基于 zookeeper 实现的 zkfire 在 openfire 的基础之上进行修改,通过 zookeeper 的集群功能实现了 openfire 的功能 —- 应用效果未知(由于 zookeeper 的限制,集群必须是奇数台服务器至少使用 3 台)
3、基于 broadcast 与 hazelcast 两个插件实现的集群功能 — 这是目前官方建议的实现方案,也是官方唯一继续维护的(集群相对简单,两台机器就能实现;通过分发实现负载均衡)
基于以上三种情况我们选择了第三种方案进行试验,试验环境是:VM 虚拟机两个(linux 的 RedHat 6.5 的 64bit 版本)
在配置 openfire 的集群插件之前,需要修改一下防火墙设置:开放 9090、22、5701 三个端口,22 端口是开放给 ssh 工具使用 9090 端口是开放给 openfire 的管理后台使用,5701 是给集群插件的广播使用
在命令窗口按顺序实行一下命令
service iptables stop
/sbin/iptables -I INPUT -p tcp –dport 9090 -j ACCEPT /sbin/iptables -I INPUT -p tcp –dport 22 -j ACCEPT /sbin/iptables -I INPUT -p tcp –dport 5701 -j ACCEPT
service iptables save
service iptables start
然后执行:service iptables status 查看防火墙状态,可以看到一下信息:
1、安装 Openfire 应用
安装 Openfire 的应用在前一页中已经讲过了,这里就不废话了。
我们只讲几个需要注意的问题:
1、所有节点的域名要完全一致
2、数据库必须是标准数据库
3、数据源链接必须使用相同的连接
2、安装插件
以上工作完成之后就可以开始安装插件了(openfire 集群需要两个插件:Broadcast、Hazelcast Clustering Plugin)
可以在可用插件页面选择安装,默认情况下【可用插件】列表中没有任何信息,点击【立即升级】后可以查看到当前官网提供的所有未安装的可用插件
选择以上两个插件点击安装按钮即可(Hazelcast Clustering Plugin 安装时间较长需要耐心等待)
3、修改 Hazelcast Clustering Plugin 配置
通过 vi 工具编辑 Hazelcast Clustering Plugin 插件的 hazelcast-cache-config.xml 文件,在该文件下添加相应节点信息
执行的命令:vi /opt/openfire/plugins/hazelcast/classes/hazelcast-cache-config.xml
修改的配置信息:
<network>
<port auto-increment=”true” port-count=”100″>5701</port>
<join>
<multicast enabled=”false”>
<multicast-group>224.2.2.3</multicast-group>
<multicast-port>54327</multicast-port>
</multicast>
<tcp-ip enabled=”true”>
<member>10.1.19.181:5701</member>
<member>10.1.19.233:5701</member>
<!– 本机地址 –>
<member>10.1.19.229:5701</member>
</tcp-ip>
<aws enabled=”false”/>
</join>
<interfaces enabled=”true”>
<!– 本机地址 –>
<interface>10.1.19.229</interface>
</interfaces>
<ssl enabled=”false”/>
<socket-interceptor enabled=”false”/>
<symmetric-encryption enabled=”false”/>
<asymmetric-encryption enabled=”false”/>
</network>
配置修改完成之后 需要重启 openfire 服务
然后进入 openfire 后台管理页面,打开集群设置页面,启动集群功能
集群功能启动成功后,5701 端口监听就会启动,并且能够显示出集群下的服务器列表
注意:
在启用集群功能时,有时会会出现长时间无响应状态,超过 5 分钟无响应后,可以通过 linux 客户端重启 openfire 服务重新查看集群状态,如果重启后集群状态仍未打开,则重新点击启用即可
运行环境准备
Openfire 目前算是国内及时通讯应用中普及率最高的消息中间件了,由于最近的项目中使用到了 Openfire 这个东西,所以不得不研究一下,从最基本的安装开始:
环境准备
1、系统环境 Linux:RedHat 6.5
2、jdk 版本:1.7
1、jdk 安装
下载 jdk 1.7 的 linux 64bit 版本,的 tar.gz 文件
通过 tar czvf jdk.tar.gz -C /usr/java
配置环境变量
通过 VI 编辑器编辑 /etc/profile 文件
在该文件中添加,一下代码
export JAVA_HOME=/usr/java/jdk_1.7.10
export CLASSPATH=/usr/java/jdk_1.7.10/lib
export PATH=$JAVA_HOME/bin:$PATH
2、安装 openfire
将 openfire 的 rpm 文件放到 /usr/ 目录下
通过 rpm -ivh openfire.rpm 命令执行安装
安装成功之后
通过 /etc/init.d/openfire start 启动
ps:
关闭命令 /etc/init.d/openfire stop
重启命令 /etc/init.d/openfire restart
OK!openfire 的环境就此准备完成
Openfire 安装配置
Openfire 选择的版本:openfire-3.10.2-1.i386.rpm 之所以选择这个版本是因为这个版本提供了 broadcast 与 Hazelcast Clustering Plugin 这两个集群所需要的插件,当然 openfire 还有其他方式实现集群配置,我们选择 openfire 官方建议的方式实现集群,很简单。
————————————– 分割线 ————————————–
CentOS 下 Openfire 详细安装过程 http://www.linuxidc.com/Linux/2012-09/69539.htm
CentOS 5.4 下基于 Jabber/XMPP 协议的 Openfire 服务器配置笔记 http://www.linuxidc.com/Linux/2012-02/55497.htm
Ubuntu 12.04 安装 Openfire http://www.linuxidc.com/Linux/2012-07/64945.htm
Openfire 在使用 MySQL 数据库后的中文乱码问题解决 http://www.linuxidc.com/Linux/2014-03/97989.htm
通过 Nginx 实现 Openfire 集群的负载均衡 http://www.linuxidc.com/Linux/2015-09/122943.htm
————————————– 分割线 ————————————–
1、选择语言
中文简体
2、服务器设置
如果是集群配置,必须注意域名要保持一致
3、数据库设置
注意:必须选择 标准数据库连接,如果是集群配置,那么数据源必须所有节点都相同
4、外形设置
注意:选择我们选择的是 ldap 配置
ldap 配置注意目录要选择:Active Directory
映射关系要跟 ldap 中的配置一致,如果是配置集群环境,在配置完第一台机器后,其他节点 ldap 的用户映射图就可以默认设置了(默认设置是通过数据源取得的)
5、管理员设置
好了,完成一社设置就算是收功了!
下面就可以进入管理页面了,在管理页面安装我们的插件:jlpush(消息推送插件)、archive(消息记录插件)以及集群部署所用到的 broadcast、hazelcast 插件(这两个插件可以到可用插件中选择安装)
安装过程非常简单,点击导航中的 [插件] 按钮,选择需要安装的插件,然后上传就可以了,当安装成功后,所安装的插件就会显示在列表中
图示:
可用插件列表,默认为空,可以点击 立即升级,之后会显示出官网提供的所有未安装的可用插件
更多详情见请继续阅读下一页的精彩内容:http://www.linuxidc.com/Linux/2015-09/122955p2.htm
Openfire 安装部署常见问题及解决方案汇总
1、Hazelcast 插件安装后在已安装列表中不显示
问题原因:只要是在已安装列表中不显示则说明插件未安装成功,一般是由于插件版本不兼容造成
解决方案:查看插件的最低支持版本 与 openfire 的版本是否兼容;尽量使用该版本可用的插件,可以避免很多麻烦问题
2、自定义插件在高版本的 openfire 中安装失败
例如:在 openfire 3.9.3 版本中开发,并且安装测试成功;当 openfire 升级为 3.10.2 版本后自定义开发的插件安装就会失败!
问题原因:很有可能是由于插件的开发规范不满足更高的版本
例如:实现的 Plugin 接口为空类,Plugin 的实现所在的包路径不是 xxx.xxx.xxx.plugin
解决方案:严格按照 openfire 插件的开发规范进行开发
3、集群插件安装成功,配置完成(使用机器名称,例如:localhost 等名称配置),但是集群服务启用失败,提示网络接口问题。
错误信息
com.hazelcast.instance.DefaultAddressPicker – [LOCAL] [openfire] [3.4] Hazelcast CANNOT start on this node. No matching network interface found.
问题原因:机器的名称不可识别,即使在 host 文件中配置过,具体原因不清楚
解决方案:别用什么别名了,直接用 IP 不是挺好吗
例如
<interface>10.1.19.229</interface>
4、集群服务启动成功了,所有的问题都没有报错的了,但是集群服务列表中只显示本地服务
问题原因:配置信息有问题:1、tcp-ip 节点下不能再用 hostname 了,应该改成 member
2、本机地址要卸载最后一个
3、别用机器别名了,直接用 IP 挺好
例如:
<tcp-ip enabled=”true”>
<member>10.1.19.181:5701</member>
<member>10.1.19.233:5701</member>
<!– 本机地址 –>
<member>10.1.19.229:5701</member>
</tcp-ip>
Openfire 的详细介绍:请点这里
Openfire 的下载地址:请点这里
更多 RedHat 相关信息见RedHat 专题页面 http://www.linuxidc.com/topicnews.aspx?tid=10
本文永久更新链接地址:http://www.linuxidc.com/Linux/2015-09/122955.htm