Apache ActiveMQ 持久化到MySQL数据库

1.  前言

ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线。ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMSProvider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位。

关于ActiveMQ 的详细介绍请参考:http://baike.baidu.com/view/433374.htm?fr=aladdin

关于JMS的详细介绍请参考:http://baike.baidu.com/subview/157103/12665866.htm?fr=aladdin

ActiveMQ提供多种数据持久化方式:可以持久化到文件,也可以持久化到数据库,其中数据库可以支持MySQL和Oracle两种类型。

默认提供的是持久化到文件的方式,即activemq.xml文件中的:

<persistenceAdapter>

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

</persistenceAdapter>

2.  步骤

本文重点接收的是持久化到MySQL中的配置方式:

2.1    添加MySQL驱动

首先需要把MySql的驱动放到ActiveMQ的Lib目录下,我用的文件名字是:

mysql-connector-java-5.1.30-bin.jar

commons-pool-1.6.jar

commons-dbcp-1.4.jar

2.2    修改配置文件activemq.xml

将其中的这段配置:

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

修改为下面这段内容:

<persistenceAdapter>

<jdbcPersistenceAdapter  dataSource="# mysql-ds "/>

</persistenceAdapter>

在</broker>结点之后,增加数据源的配置,如下:

<!-- MySql DataSource Sample Setup -->

<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://localhost/activemq?relaxAutoCommit=true"/>

<property name="username" value="root"/>

<property name="password" value="123456"/>

<property name="poolPreparedStatements" value="true"/>

</bean>

<!-- Oracle DataSource Sample Setup -->

<!--

<bean id="oracle-ds" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">

<property name="driverClassName" value="oracle.jdbc.driver.OracleDriver"/>

<property name="url" value="jdbc:oracle:thin:@localhost:1521:AMQDB"/>

<property name="username" value="root"/>

<property name="password" value="123456"/>

<property name="poolPreparedStatements" value="true"/>

</bean>

-->

2.3    新建数据库

从配置中可以看出数据库的名称是test_mq,需要手动在MySql中新建一个test_mq的空数据库。

此时,重新启动MQ,就会发现test_mq库中多了三张表:activemq_acks,activemq_lock,activemq_msgs,OK,说明已经持久化成功啦!

时间: 2024-10-05 21:16:57

Apache ActiveMQ 持久化到MySQL数据库的相关文章

Apache ActiveMQ 持久化到MySQL数据库的简单配置

1.  前言 ActiveMQ 是Apache出品,最流行的,能力强劲的开源消息总线.ActiveMQ 是一个完全支持JMS1.1和J2EE 1.4规范的 JMS Provider实现,尽管JMS规范出台已经是很久的事情了,但是JMS在当今的J2EE应用中间仍然扮演着特殊的地位. 关于ActiveMQ 的详细介绍请参考:http://baike.baidu.com/view/433374.htm?fr=aladdin 关于JMS的详细介绍请参考:http://baike.baidu.com/su

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

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

ActiveMQ持久化到mysql实现消息永不丢失

ActiveMQ持久化到mysql实现消息永不丢失 配置 1.找到apache-activemq-5.15.2/examples/conf下面的activemq-jdbc-performance.xml 2.打开activemq-jdbc-performance.xml,在persistenceAdapter节点后面添加dataSource="#mysql-ds" 并配置你的数据库 其实可以直接更改apache-activemq-5.15.2/conf/activemq.xml的per

JMS学习八(ActiveMQ的消息持久化到Mysql数据库)

1.将连接Mysql数据库的jar文件,放到ActiveMQ的lib目录下 2.修改ActiveMQ的conf目录下的active.xml文件,修改数据持久化的方式 2.1  修改原来的kshadb的持久化数据的方式 <persistenceAdapter> <!-- <kahaDB directory="${activemq.data}/kahadb"/> --> <jdbcPersistenceAdapter dataSource=&quo

ActiveMQ 消息持久化到Mysql数据库

[[email protected] local]# tar -zxvf apache-activemq-5.15.8-bin.tar.gz[[email protected] local]# mv apache-activemq-5.15.8 activemq[[email protected] activemq]# cd conf/[[email protected] conf]# pwd/usr/local/activemq/conf[[email protected] conf]# cp

activemq持久化之mysql配置

参考:http://blog.csdn.net/zbw18297786698/article/details/52999940 说明:192.168.3.81 CentOS release 6.5 apache-activemq-5.10.1 1.拷贝mysql驱动器到activemq环境下 mysql-connector-java-5.1.44-bin.jar [[email protected] apache-activemq-5.10.1]# ls /home/apache-activem

ActiveMQ持久化及测试(转)

转:http://blog.csdn.net/xyw_blog/article/details/9128219 ActiveMQ持久化 消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化,即使发送者和接受者不是同时在线或者消息中心在发送者发送消息后宕机了,在消息中心重新启动后仍然可以将消息发送出去,如果把这种持久化和ReliableMessaging结合起来应该是很好的保证了消息的可靠传送. 消息持久性的原理很简单,就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据

ActiveMQ持久化方式

消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化,即使发送者和接受者不是同时在线或者消息中心在发送者发送消息后宕机了,在消息中心重新启动后仍然可以将消息发送出去,如果把这种持久化和ReliableMessaging结合起来应该是很好的保证了消息的可靠传送. 消息持久性的原理很简单,就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件.内存数据库或者远程数据库等,然后试图将消息发送给接收者,发送成功则将消息从存储中删除,失败则继续尝试.消息中心启动以后首先要检查制

ActiveMQ持久化方式(转)

消息持久性对于可靠消息传递来说应该是一种比较好的方法,有了消息持久化,即使发送者和接受者不是同时在线或者消息中心在发送者发送消息后宕机了,在消息 中心重新启动后仍然可以将消息发送出去,如果把这种持久化和ReliableMessaging结合起来应该是很好的保证了消息的可靠传送. 消息持久性的原理很简单,就是在发送者将消息发送出去后,消息中心首先将消息存储到本地数据文件.内存数据库或者远程数据库等,然后试图将消息发送 给接收者,发送成功则将消息从存储中删除,失败则继续尝试.消息中心启动以后首先要检