ActiveMQ持久化

ActiveMQ持久化
1.   說明
使用springactivemq環境
2.   ActiveMq topic持久化2.1. AMQ方式 (瞭解一下)
AMQ是一種文件存儲形式,它具有寫入速度快和容易恢復的特點。消息存儲在一個個文件中,文件的默認大小爲32M,如果一條消息的大小超過了32M,那麼這個值必須設置大一點。當一個存儲文件中的消息已經全部被消費,那麼這個文件將被標識爲可刪除,在下一個清除階段,這個文件被刪除。AMQ適用於ActiveMQ5.3之前的版本
2.2. kafadb持久到文件
KahaDB   ActiveMQ 5.4默認持久化插件
2.2.1.   KahaDB主要特性
A、日誌形式存儲消息;
B、消息索引以B-Tree結構存儲,可以快速更新;
B-Tree存儲結構參考:https://www.cnblogs.com/gym333/p/6877023.html
C、完全支持JMS事務;
D、支持多種恢復機制;
2.2.2.    修改activemq.xml文件
a)     位置:
b)     修改broker
c)      修改persistenceAdapter
 
 
2.2.3.    生產者配置文件
2.2.4.    消費者配置文件
消息者設置需要設置標識符clientId即接收者ID。
 
 
 
2.3. jdbc持久化2.3.1.    上傳jar包到activemq/lib下
 
 
2.3.2.    修改activemq.xml
其中數據庫對應的地址請修改。
 
 
 
 
 
 
2.3.3.    啓動生產者,自動創建三個表
 
 
activemq_acks:ActiveMQ的簽收信息。
用於存儲訂閱關係。如果是持久化Topic,訂閱者和服務器的訂閱關係在這個表保存。
activemq_lock:ActiveMQ的鎖信息。
這張表只有在集羣環境中才會用到
activemq_msgs:ActiveMQ的消息的信息
用於存儲消息,Topic和Queue消息都會保存在這張表中

2.4. LevelDB方式
從ActiveMQ 5.6版本之後,又推出了LevelDB的持久化引擎。
目前默認的持久化方式仍然是KahaDB,不過LevelDB持久化性能高於KahaDB,可能是以後的趨勢。
在ActiveMQ 5.9版本提供了基於LevelDB和Zookeeper的數據複製方式,用於Master-slave方式的首選數據複製方案。
 
 
 
2.5. 測試:
在發佈/訂閱模下,啓動兩個生產者,再啓動消費者,可實現持久化。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章