XMPP协议之Openfire 集群配置【转】

来自:http://blog.csdn.net/zhu_tianwei/article/details/46314319

Openfire集群我们采用Hazelcast插件进行集群部署,采用Haproxy进行负载均衡。架构图:


一、安装并配置MySQL
  步骤略
二、编辑xmpp主机的hosts文件
[root@web01 ~]# cat /etc/hosts
10.168.18.67    xmpp01
10.168.110.71    xmpp02
三、安装openfire 
过程略过
四、为openfire配置Cluster 
1.添加hazelcat clustering Plugin 插件


2. 编辑Hazelcast 配置文件 /usr/local/openfire/plugins/hazelcast/classes/hazelcast-cache-config.xml

[html]  view plain  copy
 print ? 在CODE上查看代码片 派生到我的代码片
  1. <join>  
  2.             <multicast enabled="flase"> //禁用多播,默认为true  
  3.                 <multicast-group>224.2.2.3</multicast-group>  
  4.                 <multicast-port>54327</multicast-port>  
  5.             </multicast>  
  6.             <tcp-ip enabled="true">        //启用TCP/IP  
  7.                 <hostname>xmpp01:5701</hostname>  
  8.                 <hostname>xmpp02:5701</hostname>  
  9.                 <interface>192.168.18.67</interface>  
  10.                 <interface>192.168.110.71</interface>  
  11.             </tcp-ip>  
  12.             <aws enabled="false"/>  
  13.         </join>  
  14.         <interfaces enabled="true">  
  15.                 <interface>192.168.18.67</interface>    //本机服务器IP接口,也就是用此接口IP去通过5701端口去通信  
  16.         </interfaces>  
2台机器都需要修改

3.配置完hazelcast配置后,重新启动openfire服务,再进入到openfire的管理平台启用Hazelcast 


4.成功状态如下【集群服务能相互看到集群中的服务器运行状态】


五、测试   
分别建立几个账号,登陆服务器分别使用不同地址,进行发送消息。理论上是成功的,并且在管理后台中,也能看到登陆进来的账号状态:

Node为Local说明客户端登陆的服务器是本机
Node为Remote说明客户端登陆的服务器是其它机器

六、部署Haproxy提供负责均衡

可以参考:http://blog.csdn.net/zhu_tianwei/article/details/41117323,配置TCP负载均衡。

转至:http://blog.163.com/qiushuhui1989@126/blog/static/270110892015211112953895/

参考:
1.openfire集群部署及负载均衡方案

2.openfire3.9.1集群配置

3.Hazelcast ConfigTcpIp

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
zkfire = zookeeper openfire(3.8.1)     Openfire 采用Java开发,开源的实时协作(RTC)服务器基于XMPP(Jabber)协议,您可以使用它轻易的构建高效率的即时通信服务器.    根据对xmppopenfire的理解,我在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、付费专栏及课程。

余额充值