Apache ActiveMQ 持久化到MySQL資料庫的簡單配置
Apache ActiveMQ 持久化到MySQL資料庫的簡單配置
轉載:https://blog.csdn.net/rchm8519/article/details/41455365
1. 前言
ActiveMQ 是Apache出品,最流行的,能力強勁的開源訊息匯流排。ActiveMQ 是一個完全支援JMS1.1和J2EE 1.4規範的 JMS Provider實現,儘管JMS規範出臺已經是很久的事情了,但是JMS在當今的J2EE應用中間仍然扮演著特殊的地位。
關於ActiveMQ 的詳細介紹請參考:http://baike.baidu.com/view/433374.htm?fr=aladdin
關於JMS的詳細介紹請參考:http://baike.baidu.com/subview/157103/12665866.htm?fr=aladdin
ActiveMQ提供多種資料持久化方式:可以持久化到檔案,也可以持久化到資料庫,其中資料庫可以支援MySQL和Oracle兩種型別。
預設提供的是持久化到檔案的方式,即activemq.xml檔案中的:
<persistenceAdapter>
<kahaDB directory="${activemq.base}/data/kahadb"/>
</persistenceAdapter>
2. 步驟
本文重點接收的是持久化到MySQL中的配置方式:
2.1 新增MySQL驅動
首先需要把MySql的驅動放到ActiveMQ的Lib目錄下,我用的檔名字是:mysql-connector-java-5.1.30-bin.jar
2.2 修改配置檔案activemq.xml
將其中的這段配置:
<persistenceAdapter>
<kahaDB directory="${activemq.base}/data/kahadb"/>
</persistenceAdapter>
修改為下面這段內容:
<persistenceAdapter>
<jdbcPersistenceAdapter dataSource="#derby-ds"/>
</persistenceAdapter>
另外需要在broker節點的上面定義id為derby-ds的bean,如下:
<bean id="derby-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test_mq?relaxAutoCommit=true"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
<property name="maxActive" value="200"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
還得將mysql-connctor-java-5.1.12.jar驅動黏貼到activemq的lib目錄下。
2.3 新建資料庫
從配置中可以看出資料庫的名稱是test_mq,需要手動在MySql中新建一個test_mq的空資料庫。
此時,重新啟動MQ,就會發現test_mq庫中多了三張表:activemq_acks,activemq_lock,activemq_msgs,OK,說明已經持久化成功啦!