ActiveMQ 消息持久化到Mysql数据库

1、下载ActiveMQ

版本:ActiveMQ 5.15.3 Releasehtml

地址:http://activemq.apache.org/download.htmljava

2、运行ActiveMQ

一、解压apache-activemq-5.15.3-bin.zipmysql

二、执行\bin\win64\activemq.bat脚本便可启动AMQweb

3、修改配置文件持久化到Mysql数据库

文件路径:\conf\activemq.xmlsql

 1 <!--
 2     Configure message persistence for the broker. The default persistence
 3     mechanism is the KahaDB store (identified by the kahaDB tag).
 4     For more information, see:
 5 
 6     http://activemq.apache.org/persistence.html
 7 -->
 8 <persistenceAdapter>
 9     <!--<kahaDB directory="${activemq.data}/kahadb"/>-->
10     <jdbcPersistenceAdapter dataSource="#mysql-ds"/>
11 </persistenceAdapter>
 1 <bean id="mysql-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
 2     <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
 3     <property name="url" value="jdbc:mysql://localhost:3306/db_activemq?relaxAutoCommit=true"/>
 4     <property name="username" value="root"/>
 5     <property name="password" value="root"/>
 6     <property name="poolPreparedStatements" value="true"/>
 7 </bean>
 8 
 9 <!--
10     Enable web consoles, REST and Ajax APIs and demos
11     The web consoles requires by default login, you can disable this in the jetty.xml file
12 
13     Take a look at ${ACTIVEMQ_HOME}/conf/jetty.xml for more details
14 -->
15 <import resource="jetty.xml"/>

4、引入Mysql包

复制mysql-connector-java-5.1.45.jar包到\lib\目录下数据库

5、从新运行AMQ,数据库自动生成3张表

activemq_acks:用于存储订阅关系。若是是持久化Topic,订阅者和服务器的订阅关系在这个表保存apache

activemq_lock:在集群环境中才有用,只有一个Broker能够得到消息,称为Master Broker服务器

activemq_msgs:用于存储消息,Queue和Topic都存储在这个表中ide