天天看點

activemq 資料存儲

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