ActiveMQ持久化消息到数据库中

 

ActiveMQ默认是将消息持久化到kaha中,存储文件的位置在${activemq.base}/data/kahadb中,

 

ActiveMQ还支持将消息持久化到目前几乎全部的主流数据库中,下面以MySQL为例:

将配置文件activem.xml中的

<persistenceAdapter>

       <kahaDB directory="${activemq.base}/data/kahadb"/>

</persistenceAdapter>

 

 

修改为

扫描二维码关注公众号,回复: 803154 查看本文章

<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

猜你喜欢

转载自lvmlvy.iteye.com/blog/1683069