ActiveMQ默认是将消息持久化到kaha中,存储文件的位置在${activemq.base}/data/kahadb中,
ActiveMQ还支持将消息持久化到目前几乎全部的主流数据库中,下面以MySQL为例:
将配置文件activem.xml中的
|
<persistenceAdapter> <kahaDB directory="${activemq.base}/data/kahadb"/> </persistenceAdapter>
|
修改为
|
<persistenceAdapter> <jdbcPersistenceAdapter dataSource="#mysql-ds"/> </persistenceAdapter>
|
在broker节点外配置数据源
|
<bean id="mysql-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://10.0.64.7/activemq?relaxAutoCommit=true"/> <property name="username" value="root"/> <property name="password" value="hitv"/> <property name="poolPreparedStatements" value="true"/> </bean>
|
activemq数据库需要预先创建好,activemq会自动在数据库中创建所需的表。使用MySQL数据库时,需要设置relaxAutoCommit=true;
其他数据库参考MySQL;
本文介绍如何将ActiveMQ的消息从默认的KahaDB持久化方式更改为使用MySQL数据库进行持久化。通过修改配置文件activem.xml,并设置数据源,可以实现这一目标。MySQL配置需预先创建好数据库并设置必要的连接参数。
810

被折叠的 条评论
为什么被折叠?



