1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        zkfire分布式即時聊天服務器

        聯(lián)合創(chuàng)作 · 2023-10-01 09:34

        zkfire = zookeeper+openfire(3.8.1) 
           Openfire 采用Java開發(fā),開源的實時協(xié)作(RTC)服務器基于XMPP(Jabber)協(xié)議,您可以使用它輕易的構(gòu)建高效率的即時通信服務器. 
          根據(jù)對xmpp與openfire的理解,我在openfire中相應的地方植入少量的代碼,并把zookeeper包也一并打包到zkfire中。使用zookeeper(http://zookeeper.apache.org/)管理集群中的節(jié)點。
          客戶登陸集群中的不同服務器進行通信就如登陸同一臺服務器一樣。
          openfire自身也有一套集群的實現(xiàn),使用了oracle 的coherence的中間件,使用時要自己加入相應的jar包與集群插件。
          之所以又自己開發(fā)了一套集群實現(xiàn),一個是給集群提供多一些選擇,一個是興趣^_^,讓openfire天然就支持集群
          
          zkfire使用的場景:
          zkfire中有zookeeper的服務器監(jiān)聽與客戶端連接程序,但可以不依賴自身的zookeeper服務,可以在openfire之外另外開啟其他zookeeper服務,此時只需指定
          cluster.xml配置文件中zClient節(jié)點的連接地址即可。
          如果只是zookeeper單機服務,那么所有openfire服務器只需要連到同一個zookeeper服務器就可以完成openfire的集群
          如果是zookeeper集群,根據(jù)zookeeper的集群特點,集群中節(jié)點不應該少于3臺。如果超過一半的zk節(jié)點宕機,那么整個集群境將不能正常的工作。
          
          使用方法:
          將zkfire.jar包替換lib下的openfire.jar,之所以命名zkfire.jar只是為了易于區(qū)分,名字可以隨意取。并將cluster.xml放到bin目錄下。
          zkfire基于單openfire的實現(xiàn),所以如果使用的話建議不要開啟openfire自身的集群功能。
          在安裝的openfire目前bin下,放入cluster.xml文件。
          示例內(nèi)容如下: 

          <?xml version="1.0" encoding="UTF-8"?>
           <jive>
                <!-- 該節(jié)點用于openfire服務器之間通訊。IP為本機IP地址,需其他服務器能訪問到 -->
        <notice>10.10.152.180:3004</notice>
                 <!-- zoo節(jié)點用于配置zkfire的zookeeper服務。如果用其他zk服務器,那么這個節(jié)點可以去掉。-->
           <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>
                
              <!-- 該節(jié)點用于連接zk服務器,如果連接zkfire自身的zk服務器,那么該節(jié)點可以去掉 -->
             <zClient>127.0.0.1:3181</zClient>
           </jive>

         zoo中的節(jié)點server用于配置zookeeper的集群,myid指定本身zookeeper服務器的myid值,server.X 這個數(shù)字就是對應myid中的數(shù)字,集群中不同zk服務器的myid值不同。
           zoo中其他節(jié)點的內(nèi)容皆對應zk配制文件的鍵值內(nèi)容。這里不再詳述,可以參考 http://rdc.taobao.com/team/jm/archives/665,但dataDir與clientPort是必須配置,用于指定zookeeper數(shù)據(jù)文件地址與監(jiān)聽端口。   

        有任何問題請隨時email給我[email protected]

        瀏覽 24
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        編輯 分享
        舉報
        評論
        圖片
        表情
        推薦
        點贊
        評論
        收藏
        分享

        手機掃一掃分享

        編輯 分享
        舉報
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            99久久人妻无码精品系列 | 成年女人十八免费看 | 成人无码区免费A片视频野外 | 亚洲自偷自拍视频 | 婷婷国产精品视频 | 亚洲日本无码 | 深夜视频在线观看 | 一区二区三区免费在线观看 | heyzo精品少妇 | 中文字幕人妻一区二区三区 |