>  기사  >  데이터 베이스  >  JMS消息持久化,将ActiveMQ消息持久化到mySql数据库中_MySQL

JMS消息持久化,将ActiveMQ消息持久化到mySql数据库中_MySQL

WBOY
WBOY원래의
2016-06-01 13:13:591416검색

ActiveMQ5.8.0版本采用kahadb作为默认的消息持久化方式。使用默认的持久化机制,我们不容易直接看到消息究竟是如何持久的。ActiveMQ提供的JDBC持久化机制,能够将持久化信息存储到数据库。通过查看数据库中ActiveMQ生成的表结构和存储的数据,能够帮助我们更好的了解消息的持久化机制。现在介绍如何配置activemq,将数据持久化到mysql中。

1.配置activeMQ需要的mySql数据源

为了能够使用JDBC访问mysql数据库,显然必须要配置消息服务器的数据库源。在activemq/apache-activemq-5.8.0/conf/activemq.xml进行配置

<!-- MySQL DataSource -->	<bean id="mysqlDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">		<property name="driverClassName" value="com.mysql.jdbc.Driver"></property>		<property name="url" value="jdbc:mysql://127.0.0.1:3306/amq_db?relaxAutoCommit=true"></property>		<property name="username" value="root"></property>		<property name="password" value="root"></property>		<property name="poolPreparedStatements" value="true"></property>	</bean>
在结点之后,增加数据源的配置

2.改变activeMQ默认的持久化方式

在activemq.xml中注释掉默认的kahadb,使用jdbc持久化

<!--		<persistenceAdapter>			<kahaDB directory="${activemq.data}/kahadb"/>		</persistenceAdapter>		-->				<persistenceadapter>			<jdbcpersistenceadapter datasource="#mysqlDataSource"></jdbcpersistenceadapter>		</persistenceadapter>
3.提供mysql的驱动程序

由于activeMQ消息服务器,没有自带mysql数据库的驱动程序。我们需要手动将mysql驱动添加到消息服务器。

方法是将驱动拷贝到apache-activemq-5.8.0/lib/目录下。

经过上面的三步配置,我们重新启动消息服务器,就可以发现activeMQ在数据库中新建了3张表

activemq_acks  ,activemq_lock  ,activemq_msgs 。至此数据库持久化完成。后续博客会继续介绍这3张表的含义和使用,目前我还不清楚。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.