系列文章
ActiveMq系列(三):Springboot集成ActiveMq
目录
前言
本章内容紧接 ActiveMq系列(三):Springboot集成ActiveMq 而来,相关测试代码复用上一章的。
ActiveMq当前(5.15.12)默认使用kahaDB持久化消息,默认配置 <activemq-dir>/conf/activemq.xml,因为业务需要,更多的时候需要对数据进行维护,这里更改持久化方式为JDBC。
持久化配置
- 去官网 https://dev.mysql.com/downloads/connector/j/ 下载相应的mysql依赖,或者通过maven下载然后上传,这里选择maven下载,然后上传。随便找个地方添加maven依赖,如下:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.19</version>
</dependency>
- 确认下载下载完成过后,找到 C:\Users\当前用户\.m2\repository\mysql\mysql-connector-java\8.0.19
- 找到需要的依赖(这里是 mysql-connector-java-8.0.19.jar ),然后通过Xftp或者其他工具上传到
<activemq-dir>/lib/optional ,这里 <activemq-dir> 指的是 activemq的安装目录 ,当前为
/home/activemq/apache-activemq-5.15.11/lib/optional ,其实上传到lib目录下也一样的
- 切换目录到 <activemq-dir>/conf , 这里为 /home/activemq/apache-activemq-5.15.11/conf
- 编辑 activemq.xml ,注释 <persistenceAdapter> 标签内容,删除老的KahaDb策略
- 添加 <persistenceFactory> 标签,作为新的持久化策略
<persistenceFactory>
<journalPersistenceAdapterFactory journalLogFiles="5" dataDirectory="${activemq.data}/activemq-data" dataSource="#mysql-ds"/>
</persistenceFactory>
- 添加mysql数据源
<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="12345"/>
<property name="poolPreparedStatements" value="true"/>
</bean>
注意:这里要确认数据库可连接并且已经有activemq数据库
- 重启activemq服务,service activemq restart (没配置的请看ActiveMq系列(一):基本服务器搭建)
- 查看数据库,生成了三张表 ACTIVEMQ_ACKS ,ACTIVEMQ_LOCK ,ACTIVEMQ_MSGS
- 测试数据的持久性,这里随便启动一个生产者并发送一条消息,但是不消费(没有消费者),然后查看数据库表
尾声
具体的配置以及拓展信息可尽量参考官网:
1. 官网 http://activemq.apache.org/
2. 本篇官网参考 http://activemq.apache.org/persistence