原文地址:http://www.huaishao8.com/config/activemq/122.html
在broker中設置屬性persistent=”true”(默認是true),同時發送的消息也應該是persitent類型的。ActiveMQ消息持久化有三種方式:AMQ、KahaDB、JDBC。
1、AMQ
AMQ是一種文件存儲形式,它具有寫入速度快和容易恢復的特點。消息存儲在一個個文件中,文件的默認大小為32兆,如果一條消息的大小超過了32兆,那么這個值必須設置大點。當一個存儲文件中的消息已經全部被消費,那么這個文件將被標識為可刪除,在下一個清除階段,這個文件被刪除。默認配置如下:
<persistenceAdapter>
<amqPersistenceAdapter directory="activemq-data" maxFileLength="32mb"/>
</persistenceAdapter>
AMQ的屬性:
屬性名稱 | 默認值 | 描述 |
directory | activemq-data | 消息文件和日志的存儲目錄 |
useNIO | true | 使用NIO協議存儲消息 |
syncOnWrite | false | 同步寫到磁盤,這個選項對性能影響非常大 |
maxFileLength | 32mb | 一個消息文件的大小 |
persistentIndex | true | 消息索引的持久化,如果為false,那么索引保存在內存中 |
maxCheckpointMessageAddSize | 4kb | 一個事務允許的最大消息量 |
cleanupInterval | 30000 | 清除操作周期,單位ms |
indexBinSize | 1024 | 索引文件緩存頁面數,缺省為1024,當amq擴充或者縮減存儲時,會鎖定整個broker,導致一定時間的阻塞,所以這個值應該調整到比較大,但是代碼中實現會動態伸縮,調整效果并不理想。 |
indexKeySize | 96 | 索引key的大小,key是消息ID |
indexPageSize | 16kb | 索引的頁大小 |
directoryArchive | archive | 存儲被歸檔的消息文件目錄 |
archiveDataLogs | false | 當為true時,歸檔的消息文件被移到directoryArchive,而不是直接刪除
|