1、jdbcPersistenceAdapter資料庫存儲
<persistenceAdapter>
<jdbcPersistenceAdapter dataSource="#mysql-ds" createTablesOnStartup="true"/>
</persistenceAdapter>
注:紅色标記的地方,第一次啟動時建議設定成true,會自動生成 activemq_msgs/activemq_lock/activemq_acks三張表,同時需要注意,不同的activemq版本,表結構會有所差別.表生成之後,必須将其設定成false.
<bean id="mysql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/activemq?relaxAutoCommit=true"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
<property name="maxTotal" value="200"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
注:紅色标記的地方,是針對不同的dbcp版本而言的.如果是版本1.*,則是org.apache.commons.dbcp.BasicDataSource
更多參數設定請參考:http://blog.csdn.net/fairyhawk/article/details/7565391
2、memoryPersistenceAdapter 記憶體存儲
<memoryPersistenceAdapter/>
或者将persistent=false。
<broker brokerName="test-broker" persistent="false" xmlns="http://activemq.apache.org/schema/core">
3、kahaDB檔案存儲
<kahaDB directory="${activemq.data}/kahadb"/>
4、journalPersistenceAdapter檔案存儲
适用場景:對于叢集的broker用JDBC的消息和日志存儲,可以有效的避免資料丢失.
5、mKahaDB檔案存儲
<mKahaDB directory="${activemq.data}/kahadb"/>
6、replicatedLevelDB檔案存儲
<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"
/>
7、levelDB檔案存儲
<levelDB directory="${activemq.data}/leveldb"/>
參考:http://blog.51cto.com/881206524/1927604