文档章节

消息中间件(3)-ActiveMQ消息持久化

haoran_10
 haoran_10
发布于 2016/07/15 16:38
字数 528
阅读 52
收藏 0
点赞 0
评论 0

ActiveMQ消息持久化

 

一、不使用持久化

<broker persistent= "false" >

</broker>

那么activemq 会自动使用 内存保存消息,使用  org.apache.activemq.store.memory.MemoryPersistenceAdapter 来保存

 

二、消息数据灾难恢复

http://activemq.apache.org/replicated-message-store.html

推荐使用Master/Slave

 

三、持久化

(1)、 Configuring Kaha Persistence,一种格式化消息到文件的引擎,当前ActiveMQ默认的消息持久化引擎。

5.0之前还有一种消息持久化引擎AMQ,但是已经废弃了,推荐使用Kaha。

Kaha Peristence 是一个消息持久化到文件的存储解决引擎,也是ActiveMQ项目的一部分。

提供最优性能进行调优的典型消息使用模式,其中包括写/读和丢弃的消息很快被保存。

数据存储在Kaha附加到数据日志,一旦数据不在有用处,日志文件会丢弃那部分数据。

ActiveMQ 5.0 and above:

<broker brokerName= "broker"  persistent= "true"  useShutdownHook= "false" >

    <transportConnectors>

      <transportConnector uri= "tcp://localhost:61616" />

    </transportConnectors>

    <persistenceAdapter>

      <kahaPersistenceAdapter directory= "activemq-data"  maxDataFileLength= "33554432" />

    </persistenceAdapter>

  </broker>

 

(2)、LevelDB Persistence

这种文件系统是从ActiveMQ5.8之后引进的,它和KahaDB非常相似,也是基于文件的本地数据库储存形式,但是它提供比KahaDB更快的持久性。与KahaDB不同的是,它不是使用传统的B-树来实现对日志数据的提前写,而是使用基于索引的LevelDB。

< persistenceAdapter >

         <   levelDBdirectory   =   "activemq-data"   />

</ persistenceAdapter >

 

(3)、使用JDBC持久化到数据库

<persistenceAdapter>

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

</persistenceAdapter>

注:my-ds 数据库要预先定义好

 

 

(4)、 Replicated LevelDB Store 

 

在ActiveMQ 5.9中,复制并且存储。

它使用Apache zookeeper 从一组代理节点中配置(全部相同的配置),选择一个作为主节点并且存储消息,然后同步所有的其他子节点,让其他子节点更新通过复制到主节点的所有更新。

直白点:zookeeper+ActiveMQ集群,防止单节点挂机。

 

<persistenceAdapter>

            <replicatedLevelDB

                    directory="${activemq.data}"

                    replicas="2"

                    bind="tcp://0.0.0.0:61619"

                    zkAddress="127.0.0.1:2181"

                    zkPassword="password"

                    zkPath="/activemq/leveldb-stores"

                    />

</persistenceAdapter>

 

一图胜千言:

 

推荐使用此方式做为生产中配置。

 

 

 

参考的资料:

http://activemq.apache.org/persistence.html

http://activemq.apache.org/replicated-leveldb-store.html

http://my.oschina.net/u/1455908/blog/310115

 

© 著作权归作者所有

共有 人打赏支持
haoran_10
粉丝 25
博文 88
码字总数 80846
作品 0
杭州
程序员
activeMQ5官方文档翻译-初始化配置

首先你需要把jar包加到classpath 所需的jar包 为了使ActiveMQ更容易使用,默认的activemq-all.jar包包含了所有需要用到的库文件。如果你喜欢以明确的控制jar包的方式来使用ActiveMQ,那下面是...

z_jordon
2015/05/29
0
0
2.ActiveMQ消息队列安装使用

全程是MOM (Message Oriented Middleware) 消息中间件 消息中间件有很多,比如: 1.ActiveMQ java语言编写的和java系统结合紧密 2.RabbitMQ Erlong语言开发的,天生支持高并发,性能优于A...

小杰java
2017/10/26
0
0
ActiveMQ 持久化(数据库),查询队列剩余消息数、出队数的实现

《ActiveMQ 持久化(文件),查询队列剩余消息数、出队数的实现》分析了消息队列持久化保存,假如activemq服务器突然停止,服务器启动后,还可以继续查找队列中的消息。现在分析队列中的消息...

cookqq
2013/03/04
0
0
ActiveMQ 持久化(文件),查询队列剩余消息数、出队数的实现

本人博客开始迁移,博客整个架构自己搭建及编码 http://www.cookqq.com/listBlog.action 《ActiveMQ发消息和收消息》详细介绍了ActiveMQ发消息和收消息,消息保存在消息队列(queue)中,消息...

cookqq
2013/03/03
0
1
Java消息中间件之ActiveMQ

一、消息中间件 1.消息中间件概述 中间件:非底层操作系统软件,非业务应用软件,不是直接给最终用户使用的,不能直接给客户带来价值的软件统称为中间件。 消息中间件:关注与数据的发送和接...

aibinxiao
2017/11/01
0
0
ActiveMQ学习记录 之 消息持久化

1:前言 这一段给公司开发消息总线有机会研究ActiveMQ,今天撰文给大家介绍一下他的持久化消息。本文只介绍三种方式,分别是持久化为文件,MYSql,Oracle。下面逐一介绍。 A:持久化为文件 这...

李格尔楞
2017/11/01
0
0
#研发中间件介绍#异步消息可靠推送Notify

电商系统为什么需要 NotifyServer? 如子柳所说,电商系统『需要两种中间件系统,一种是实时调用的中间件(淘宝的HSF,高性能服务框架)、一种是异步消息通知的中间件(淘宝的Notify)』。那...

旁观者-郑昀
2014/12/16
0
3
ActiveMQ集群方案(上)

版权声明:欢迎转载,但是看在我辛勤劳动的份上,请注明来源:http://blog.csdn.net/yinwenjie(未经允许严禁用于商业用途!) https://blog.csdn.net/yinwenjie/article/details/51124749 目...

yunlielai
04/15
0
0
JMS配置说明-----activeMQ-5.6

1 简介 activeMQ是一个完全支持JMS1.1 和J2EE规范的JMS Provider实现; 尽管规范出台已经是很久的事情了,但JMS在当今的J2EE应用中仍然扮演着特殊的地位; 特性列表 多种语言和协议编写客户端...

次渠龙哥
06/26
0
0
ActiveMQ集群方案(下)

版权声明:欢迎转载,但是看在我辛勤劳动的份上,请注明来源:http://blog.csdn.net/yinwenjie(未经允许严禁用于商业用途!) https://blog.csdn.net/yinwenjie/article/details/51205822 目...

yunlielai
04/15
0
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

告警系统主脚本、告警系统配置文件、告警系统监控项目

告警系统主脚本 为方便需要,所有的shell脚本放到 /usr/local/sbin/ 目录下 切换到 /usr/local/sbin/ 目录下,创建告警系统脚本 #!/bin/bash#Written by aming.# 是否发送邮件的开关(1表...

Zhouliang6
6分钟前
1
0
不要再问我跨域的问题了

原文链接:web.jobbole.com 【RTC实时互联网大会 限时免费 马上报名】www.bagevent.com 写下这篇文章后我想,要不以后就把这种基础的常见知识都归到这个“不要再问我XX的问题”,形成一系列内...

阿K1225
8分钟前
0
0
Tomcat配置虚拟路径

<?xml version="1.0" encoding="UTF-8"?> <Context docBase="/data/dispute_https/headPortrait/" path="/headPortrait" reloadable="true"/> <!-- 该文件名为headPortrait.xml,放在${tomca......

Helios51
9分钟前
0
0
开源PaaS Rainbond 3.6.1 Released

本次3.6.1版本更新,重点修复了3.6.0版本部分情况下会出现的BUG,同时改进了内部市场、参数验证、历史消息等功能,详细更新记录如下—— 3.6.1 功能改进 云帮初次使用跳转至注册页面 消息添加...

好雨云帮
10分钟前
0
0
Unsupported major.minor version 52.0

执行代码的jdk版本 低于 编译的jdk版本 其中52.0 对应的就是 jdk1.8版本。

@林文龙
10分钟前
0
0
聊聊spring cloud的AbstractLoadBalancingClient

序 本文主要研究一下spring cloud的AbstractLoadBalancingClient AbstractLoadBalancingClient spring-cloud-netflix-ribbon-2.0.0.RELEASE-sources.jar!/org/springframework/cloud/netfli......

go4it
11分钟前
0
0
博客改版通知

先上博客地址 --> http://metaphors.name 最近将博客从 Jekyll 迁到了 Hexo,所以简书、开源中国、博客园、CSDN文章中的的部分图片丢了,原文链接也不可用了,不过没关系,原文链接都会转到博...

Metaphors
11分钟前
0
0
vue基础知识练习

一、Hello World <div id="itany">{{msg}} <!-- 两对大括号{{}}称为模板,用来进行数据的绑定显示在页面中 --> </div><script src="js/vue.js"></script><script>var vm=new Vue({......

一个yuanbeth
15分钟前
0
0
spring @Transactional注解参数详解

原文:事物注解方式: @Transactional 当标于类前时, 标示类中所有方法都进行事物处理 , 例子: 1 @Transactional public class TestServiceBean implements TestService {} 当类中某些方法不需...

binhu
18分钟前
0
0
CORS 跨域实践

本文首发于个人微信公众号《andyqian》,期待你的关注~ 前言 系统通常都是由单体应用逐渐演化而来,演化成为前后端分离的分布式应用。在享受分布式系统带来的诸多好处之时,随之而来的也有不...

andyqian
25分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部