ActiveMQ默认的消息持久化方式:
均在 ActiveMQ_HOME/conf/activemq.xml文件中配置实现。
第一种方式
持久化为数据文件方式是ActiveMQ默认使用方式
配置如下:
<persistenceAdapter>
<kahaDBdirectory="${activemq.data}/kahadb"/>
</persistenceAdapter>
第二种方式
通过JDBC将消息持久化到数据库中
配置如下:
<persistenceAdapter>
<jdbcPersistenceAdaptedirectory="${activemq.data}" dataSource="#mysqlDataSource"/>
</persistenceAdapter>
mysqlDataSource数据源配置如下
- <bean id="mysqlDataSource" 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="activemq"/>
- <property name="password" value="activemq"/>
- <property name="poolPreparedStatements" value="true"/>
- </bean>
第三种方式
基于内存的消息存储方式
配置如下:
<broker persistent="false">
<persistenceAdapter>
<jdbcPersistenceAdaptedirectory="${activemq.data}" dataSource="#mysqlDataSource"/>
</persistenceAdapter>
</broker>
ActiveMQ支持一种高效日志方式,具体设置如下:
<persistenceFactory><journalPersistenceAdapterFactory journalLogFiles="5"
dataDirectory="${activemq.base}/data" dataSource="#mysqlDataSource"></journalPersistenceAdapterFactory> </persistenceFactory>
mysqlDataSource数据源配置详见上面配置。
在消息消费者能跟上生产者的速度时,journal文件能大大减少需要写入到DB中的消息。举个例子:生产者产生了10000个消息,这10000个消息会保存到journal文件中,但是消费者的速度很快,在journal文件还未同步到DB之前,以消费了9900个消息。那么后面就只需要写入100个消息到DB了。如果消费者不能跟上生产者的速度,journal文件可以使消息以批量的方式写入DB中,JDBC驱动进行DB写入的优化。从而提升了性能。另外,journal文件支持JMS事务的一致性。
ActiveMQ源码下载地址如下:
https://repository.apache.org/content/repositories/snapshots/org/apache/activemq/
相关推荐
Apache ActiveMQ 5.8 Maser 队列
ActiveMQ配置Mysql8为持久化方式所需Jar包
activemq消息持久化所需Jar包,详情请参见博文:http://blog.csdn.net/l1028386804/article/details/68997105
一个订阅通道,支持多个客户端监听,当某个客户端掉线后,再上线的时候可以收到它没有接收到的消息。
ActiveMQ队列消息过期时间设置和自动清除解决方案.docx
spring +activemq topic消息持久化订阅实例,整个项目中有activemq和spring的整合的所有实例,topic的持久化配置是在ApplicationContext3C、ApplicationContext3C2以及ApplicationContext3P三个中,消息生产者:...
NULL 博文链接:https://showlike.iteye.com/blog/2000117
activemq-parent-5.8.0-source-release.zip
在网上找了很多的topic持久化的Demo做了很多的测试,现把熟肉呈上。
本人在学习activemq,然后 测试完成的demo, 包含了queue,topic,持久化到mysql,订阅模式,包好用
activemq-pool-5.8.0-sources.jar
详细描述了ActiveMQ消息过期-时间设置和自动清除解决方案。
Apache ActiveMQ5.8 入门最简单例子 消息队列 Master
activemq-5.15.15 JDBC持久化mysql8.0+的activemq.xml
springboot集成activemq实现消息接收demo
本篇文章记录centos6下ActiveMQ+Zookeeper消息中间件集群-完整部署过程,讲解十分详细,本人线上实操手册。在此分享出来,希望能帮助到有用到的朋友。
activemq消息持久化所需Jar包,亲测可用https://blog.csdn.net/weixin_42109071/article/details/91349406
该文档详细描述了linux环境下的 Activemq 持久化、集群环境的搭建步骤,以及测试步骤
一个jms activemq Topic 消息实例 关于jms JMS 是接口,相当于jdbc ,要真正使用它需要某些厂商进行实现 ,即jms provider 常见的jms provider 有 ActiveMQ JBoss 社区所研发的 HornetQ (在jboss6 中默认即可以...
用C#实现的ActiveMQ发布/订阅消息传送源程序