您的位置:首页 > 其它

ActiveMQ学习笔记7-ActiveMQ持久化模式

2019-06-29 14:26 66 查看

ActiveMQ持久化模式

AMQ Message Store

AMQ Message Store是ActiveMQ5.0缺省的持久化存储。Message commands被保存到transactional journal(由rolling data logs组成)。

Kaha Persistence

Kaha Persistence 是一个专门针对消息持久化的解决方案。它对典型的消息使用模式进行了优化。在Kaha中,数据被追加到data logs中。当不再需要log文件中的数据的时候,log文件会被丢弃。

JDBC Persistence

配置使用数据库存储消息。实例为使用MySQL存储数据。

配置activemq.xml文件

1) 在broker节点下面有一个节点配置存储模式,默认是kaha模式。改为jdbc模式



属性dataSource是第二步中需要配置数据源的id;createTabelsOnStartup是代表启动时是否创建数据库表,一般设置第一次创建,之后就设置为false。
2) 在于beans下面增加数据库配置

<bean id="my-ds" class="org.apache.commons.dbcp2.BasicDataSource" destroy-method="close">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/activemq?characterEncoding=utf-8" />
<property name="username" value="root" />
<property name="password" value="root" />
<property name="initialSize" value="5" />
<property name="maxTotal" value="100" />
<property name="maxIdle" value="30" />
<property name="maxWaitMillis" value="10000" />
<property name="minIdle" value="1" />
</bean>

数据库驱动

拷贝mysql的jdbc驱动的jar到lib,拷贝commons-dbcp2-2.3.0.jar(连接池)到lib下面。

创建数据库

配置可以自动创建表,但是无法自动创建数据库,在xml配置中的数据库名称需要自己在mysql中先创建。

注意事项

1) createTabelsOnStartup第一次配置为true,之后配置为false。
2) 数据源bean是在beans节点下面,而非broker下面。
3) commons-dbcp2-2.3.0.jar是连接池的,activeMQ是使用连接池。
4) 数据库必须先创建。
5) 消息消费了后就会从数据库删除。
6) Mysql的驱动必须5.1.25以上

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: