pzxsheng

          有種相見不敢見的傷痛,有種愛還埋藏在心中

          ActiveMQ使用筆記(二)ActiveMQ消息持久化二

          原文地址:http://www.huaishao8.com/config/activemq/132.html

          KahaDB

          KahaDB是基于文件的本地數據庫儲存形式,雖然沒有AMQ的速度快,但是它具有強擴展性,恢復的時間比AMQ短,從5.4版本之后KahaDB做為默認的持久化方式。默認配置如下:

              <persistenceAdapter>
                  
          <kahaDB directory="activemq-data" journalMaxFileLength="32mb"/>
              
          </persistenceAdapter>


          KahaDB的屬性:

          property namedefault valueComments
          directoryactivemq-data消息文件和日志的存儲目錄
          indexWriteBatchSize1000一批索引的大小,當要更新的索引量到達這個值時,更新到消息文件中
          indexCacheSize10000內存中,索引的頁大小
          enableIndexWriteAsyncfalse索引是否異步寫到消息文件中
          journalMaxFileLength32mb一個消息文件的大小
          enableJournalDiskSyncstrue是否講非事務的消息同步寫入到磁盤
          cleanupInterval30000清除操作周期,單位ms
          checkpointInterval5000索引寫入到消息文件的周期,單位ms
          ignoreMissingJournalfilesfalse忽略丟失的消息文件,false,當丟失了消息文件,啟動異常
          checkForCorruptJournalFilesfalse檢查消息文件是否損壞,true,檢查發現損壞會嘗試修復
          checksumJournalFilesfalse產生一個checksum,以便能夠檢測journal文件是否損壞。
          5.4版本之后有效的屬性:
          archiveDataLogsfalse當為true時,歸檔的消息文件被移到directoryArchive,而不是直接刪除
          directoryArchivenull存儲被歸檔的消息文件目錄
          databaseLockedWaitDelay10000在使用負載時,等待獲得文件鎖的延遲時間,單位ms
          maxAsyncJobs10000同個生產者產生等待寫入的異步消息最大量
          concurrentStoreAndDispatchTopicsfalse當寫入消息的時候,是否轉發主題消息
          concurrentStoreAndDispatchQueuestrue當寫入消息的時候,是否轉發隊列消息
          5.6版本之后有效的屬性:
          archiveCorruptedIndex false是否歸檔錯誤的索引

          從5.6版本之后,有可能發布通過多個kahadb持久適配器來實現分布式目標隊列存儲。什么時候用呢?如果有一個快速的生產者和消費者,當某一個時刻生產者發生了不規范的消費,那么有可能產生一條消息被存儲在兩個消息文件中,同時,有些目標隊列是危險的并且要求訪問磁盤。在這種情況下,你應該用通配符來使用mKahaDB。如果目標隊列是分布的,事務是可以跨越多個消息文件的。

          每個KahaDB的實例都可以配置單獨的適配器,如果沒有目標隊列提交給filteredKahaDB,那么意味著對所有的隊列有效。如果一個隊列沒有對應的適配器,那么將會拋出一個異常。配置如下:

          <persistenceAdapter>
            
          <mKahaDB directory="${activemq.base}/data/kahadb">
              
          <filteredPersistenceAdapters>
                
          <!-- match all queues -->
                
          <filteredKahaDB queue=">">
                  
          <persistenceAdapter>
                    
          <kahaDB journalMaxFileLength="32mb"/>
                  
          </persistenceAdapter>
                
          </filteredKahaDB>
                
                
          <!-- match all destinations -->
                
          <filteredKahaDB>
                  
          <persistenceAdapter>
                    
          <kahaDB enableJournalDiskSyncs="false"/>
                  
          </persistenceAdapter>
                
          </filteredKahaDB>
              
          </filteredPersistenceAdapters>
            
          </mKahaDB>
           
          </persistenceAdapter>

          如果filteredKahaDB的perDestination屬性設置為true,那么匹配的目標隊列將會得到自己對應的KahaDB實例。配置如下:
          <persistenceAdapter>
            
          <mKahaDB directory="${activemq.base}/data/kahadb">
              
          <filteredPersistenceAdapters>
                
          <!-- kahaDB per destinations -->
                
          <filteredKahaDB perDestination="true" >
                  
          <persistenceAdapter>
                    
          <kahaDB journalMaxFileLength="32mb" />
                  
          </persistenceAdapter>
                
          </filteredKahaDB>
              
          </filteredPersistenceAdapters>
            
          </mKahaDB>
           
          </persistenceAdapter>

           

          posted on 2013-03-15 09:14 科菱財神 閱讀(1367) 評論(0)  編輯  收藏 所屬分類: ActiveMQ

          導航

          <2013年3月>
          242526272812
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          統計

          常用鏈接

          留言簿(1)

          隨筆分類

          隨筆檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 赤水市| 婺源县| 钦州市| 祁阳县| 安溪县| 霍城县| 吉首市| 浑源县| 丰都县| 连云港市| 澄江县| 克东县| 梧州市| 谢通门县| 梨树县| 舞钢市| 鹤峰县| 洪雅县| 乡城县| 莫力| 城固县| 和政县| 湾仔区| 龙州县| 长寿区| 莱州市| 山西省| 额敏县| 广德县| 东山县| 金湖县| 辽宁省| 铁岭市| 千阳县| 蚌埠市| 北流市| 大足县| 安龙县| 淄博市| 鲁山县| 萍乡市|