一、简介
ActiveMQ中,持久化是指对消息数据的持久化。在ActiveMQ中,默认的消息是保存在内存中的。当内存容量不足的时候,或ActiveMQ正常关闭的时候,会将内存中的未处理的消息持久化到磁盘中。具体的持久化策略由配置文件中的具体配置决定。
ActiveMQ的默认存储策略是kahadb。如果使用JDBC作为持久化策略,则会将所有的需要持久化的消息保存到数据库中。
所有的持久化配置都在conf/activemq.xml中配置,配置信息都在broker标签内部定义。
二、kahadb方式
ActiveMQ默认的持久化策略(activemq.xml)。kahadb是一个文件型数据库。是使用内存+文件保证数据的持久化的。
<persistenceAdapter>
<kahaDB directory="${activemq.data}/kahadb"/>
</persistenceAdapter>
特性:
1、日志形式存储消息;
2、消息索引以B-Tree结构存储,可以快速更新;
3、完全支持JMS事务;
4、支持多种恢复机制;
三、JDBC持久化
ActiveMQ将数据持久化到数据库中,可以使用任意的数据库。 本环节中使用MySQL数据库。
1.activemq.xml 中配置一个数据源bean:
<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDat