天天看點

消息中間件(3)-ActiveMQ消息持久化

ActiveMQ消息持久化

一、不使用持久化

<broker persistent=

"false"

>

</broker>

那麼activemq 會自動使用 記憶體儲存消息,使用  org.apache.activemq.store.memory.MemoryPersistenceAdapter 來儲存  

二、消息資料災難恢複

http://activemq.apache.org/replicated-message-store.html 推薦使用Master/Slave  

三、持久化

(1)、 Configuring Kaha Persistence,一種格式化消息到檔案的引擎,目前ActiveMQ預設的消息持久化引擎。

5.0之前還有一種消息持久化引擎AMQ,但是已經廢棄了,推薦使用Kaha。

Kaha Peristence 是一個消息持久化到檔案的存儲解決引擎,也是ActiveMQ項目的一部分。 提供最優性能進行調優的典型消息使用模式,其中包括寫/讀和丢棄的消息很快被儲存。 資料存儲在Kaha附加到資料日志,一旦資料不在有用處,日志檔案會丢棄那部分資料。 ActiveMQ 5.0 and above:

<broker brokerName=

"broker"

persistent=

"true"

useShutdownHook=

"false"

>

<transportConnectors>

<transportConnector uri=

"tcp://localhost:61616"

/>

</transportConnectors>

<persistenceAdapter>

<kahaPersistenceAdapter directory=

"activemq-data"

maxDataFileLength=

"33554432"

/>

</persistenceAdapter>

</broker>

  (2)、LevelDB Persistence ,這種檔案系統是從ActiveMQ5.8之後引進的,它和KahaDB非常相似,也是基于檔案的本地資料庫儲存形式,但是它提供比KahaDB更快的持久性。與KahaDB不同的是,它不是使用傳統的B-樹來實作對日志資料的提前寫,而是使用基于索引的LevelDB。

< persistenceAdapter >          <   levelDBdirectory   =   "activemq-data"   /> </ persistenceAdapter >

  (3)、使用JDBC持久化到資料庫

<persistenceAdapter>

<jdbcPersistenceAdapter dataSource=

"#my-ds"

/>

</persistenceAdapter>

注:my-ds 資料庫要預先定義好     (4)、 Replicated LevelDB Store    在ActiveMQ 5.9中,複制并且存儲。 它使用Apache zookeeper 從一組代理節點中配置(全部相同的配置),選擇一個作為主節點并且存儲消息,然後同步所有的其他子節點,讓其他子節點更新通過複制到主節點的所有更新。 直白點:zookeeper+ActiveMQ叢集,防止單節點挂機。

  <persistenceAdapter>             <replicatedLevelDB                     directory="${activemq.data}"                     replicas="2"                     bind="tcp://0.0.0.0:61619"                     zkAddress="127.0.0.1:2181"                     zkPassword="password"                     zkPath="/activemq/leveldb-stores"                     /> </persistenceAdapter>  

一圖勝千言:  

消息中間件(3)-ActiveMQ消息持久化

推薦使用此方式做為生産中配置。       參考的資料: http://activemq.apache.org/persistence.html http://activemq.apache.org/replicated-leveldb-store.html http://my.oschina.net/u/1455908/blog/310115

繼續閱讀