openfire安装部署 3- 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的应用在  http://muruiheng.iteye.com/blog/2231284 中已经讲过了,这里就不废话了。

  我们只讲几个需要注意的问题:

          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服务重新查看集群状态,如果重启后集群状态仍未打开,则重新点击启用即可

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
zkfire = zookeeper openfire(3.8.1)     Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议,您可以使用它轻易的构建高效率的即时通信服务器.    根据对xmpp与openfire的理解,我在openfire中相应的地方植入少量的代码,并把zookeeper包也一并打包到zkfire中。使用zookeeper(http://zookeeper.apache.org/)管理集群中的节点。   客户登陆集群中的不同服务器进行通信就如登陆同一台服务器一样。   openfire自身也有一套集群的实现,使用了oracle 的coherence的中间件,使用时要自己加入相应的jar包与集群插件。   之所以又自己开发了一套集群实现,一个是给集群提供多一些选择,一个是兴趣^_^,让openfire天然就支持集群      zkfire使用的场景:   zkfire中有zookeeper的服务器监听与客户端连接程序,但可以不依赖自身的zookeeper服务,可以在openfire之外另外开启其他zookeeper服务,此时只需指定   cluster.xml配置文件中zClient节点的连接地址即可。   如果只是zookeeper单机服务,那么所有openfire服务器只需要连到同一个zookeeper服务器就可以完成openfire的集群   如果是zookeeper集群,根据zookeeper的集群特点,集群中节点不应该少于3台。如果超过一半的zk节点宕机,那么整个集群境将不能正常的工作。      使用方法:   将zkfire.jar包替换lib下的openfire.jar,之所以命名zkfire.jar只是为了易于区分,名字可以随意取。并将cluster.xml放到bin目录下。   zkfire基于单openfire的实现,所以如果使用的话建议不要开启openfire自身的集群功能。   在安装openfire目前bin下,放入cluster.xml文件。   示例内容如下:    <?xml version="1.0" encoding="UTF-8"?>    <jive>         <!-- 该节点用于openfire服务器之间通讯。IP为本机IP地址,需其他服务器能访问到 --> <notice>10.10.152.180:3004</notice>          <!-- zoo节点用于配置zkfire的zookeeper服务。如果用其他zk服务器,那么这个节点可以去掉。-->    <zoo>               <tickTime>2000</tickTime>              <initLimit>10</initLimit>              <syncLimit>5</syncLimit>              <dataDir>E:/zoo/data</dataDir>              <clientPort>3181</clientPort>               <server name="server.1">10.10.152.180:2888:3888</server>               <server name="server.2">10.10.152.185:2888:3888</server>               <server name="server.3">10.10.152.189:2888:3888</server>               <myid>1</myid>    </zoo>                <!-- 该节点用于连接zk服务器,如果连接zkfire自身的zk服务器,那么该节点可以去掉 -->      <zClient>127.0.0.1:3181</zClient>    </jive>  zoo中的节点server用于配置zookeeper的集群,myid指定本身zookeeper服务器的myid值,server.X 这个数字就是对应myid中的数字,集群中不同zk服务器的myid值不同。    zoo中其他节点的内容皆对应zk配制文件的键值内容。这里不再详述,可以参考 http://rdc.taobao.com/team/jm/archives/665,但dataDir与clientPort是必须配置,用于指定zookeeper数据文件地址与监听端口。    有任何问题请随时email给我donnie4w@gmail.com 标签:zkfire

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值