ActiveMQ持久化文件清除问题?

在学习activemq,用kahaDB持久化,在测试性能时发现
1.如果持久订阅者都在线接收消息,db-.log会自动删除,但是db.data文件越来越大,对以后系统性能肯定会有影响,怎么控制这个文件大小?
2.如果持久订阅者很多,有几个一直不在线,则导致db-.log文件一直保留,即使消息过期了也不会删除,只有所有的持久订阅者都在线后才会删除db-.log
3.设置4个持久订阅者,先一个在线,两个不在线,生产者插入50W条消息后,大概使用了500M磁盘空间,然后让第二个在线消费消息,磁盘空间使用反而增加了一百多M,第三个再消费者启动消费消息,磁盘空间继续增加,除非四个都消费消息之后磁盘空间才会释放,这是什么问题。。。(若是有很多持久订阅者不在线不就把磁盘撑爆了。。。)
请大牛帮忙解释下,是哪个参数配置不对吗?

2

1个回答

这是为了消息不丢失。。。如果想要不消费的消息回收,加上过期时间。

0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
ActiveMQ消息过期时间设置和自动清除解决方案
详细描述了ActiveMQ消息过期-时间设置和自动清除解决方案。
消息中间件-activemq实战之消息持久化(六)
对于activemq消息的持久化我们在第二节的时候就简单介绍过,今天我们详细的来分析一下activemq的持久化过程以及持久化插件。在生产环境中为确保消息的可靠性,我们肯定的面临持久化消息的问题,今天就一起来攻克他吧。1. 持久化方式介绍前面我们也简单提到了activemq提供的插件式的消息存储,在这里再提一下,主要有以下几种方式: AMQ消息存储-基于文件的存储方式,是activemq开始的版本默
ActiveMQ配置自动清除数据
备注:(删除不活动的队列(Delete Inactive Destinations)) 一般情况下,ActiveMQ的Topic和Queue在不使用之后,可以通过web控制台或是JMX方式来删除掉。 当然,也可以通过配置,使得broker可以自动探测到无用的队列(一定时间内为空的队列)并删除掉,回收响应资源。 实现定时自动清理无效的Topic和Queue需要设置三个属性。 active
activeMQ消息详解(续) 订阅(主题)消息(消息持久化)
activeMQ 持久化消息 订阅消息
MQTT下ActiveMQ的消息持久化
当 MQTT客户端订阅者同时满足如下条件时,会变成持久订阅者,此时可以为MQTT订阅者持久化消息到数据库或文件存储: 1. cleanSession为false 2. clientId不为空
ActiveMQ 持久化配置
修改配置文件activemq.xml修改persistenceAdapter将下面这段配置,注释掉<persistenceAdapter> <kahaDB directory="${activemq.data}/kahadb"/> </persistenceAdapter> 然后更新成下面的配置:<persistenceAdapter> <jdbcPersistenceAdapter
ActiveMQ的持久化与集群
ActiveMQ存储消息可以采用多种持久化方案,每种方案都有自己特有的集群方案。
spring+activemq topic持久化订阅
spring +activemq topic消息持久化订阅实例,整个项目中有activemq和spring的整合的所有实例,topic的持久化配置是在ApplicationContext3C、ApplicationContext3C2以及ApplicationContext3P三个中,消息生产者:QueueProducer 、消息消费者1:SimpleJMSReceiver 消息消费者2:SimpleJMSReceiver2
ActiveMQ笔记(7):如何清理无效的延时消息?
ActiveMQ的延时消息是一个让人又爱又恨的功能,具体使用可参考上篇ActiveMQ笔记(6):消息延时投递,在很多需要消息延时投递的业务场景十分有用,但是也有一个缺陷,在一些大访问量的场景,如果瞬间向MQ发送海量的延时消息,超过MQ的调度能力,就会造成很多消息到了该投递的时刻,却没有投递出去,形成积压,一直停留在ActiveMQ web控制台的Scheduled面板中。 下面的代码演示了,如何
ActiveMQ的消息存储持久化(一)
                                 ActiveMQ的消息存储持久化(一) 概述 ActiveMQ不仅支持persistent【持久的】和non-persistent【非持久的】两种方式,还支持消息的recovery【恢复】方式。 PTP Queue的存储是很简单的,就是一个FIFO的Queue。 PUB/SUB 对于持久化订阅主题,每一个消费者将获得...
activeMQ持久化消息和非持久化消息的存储原理
正常情况下,非持久化消息是存储在内存中的,持久化消息是存储在文件中的。能够存储的最大消息数在/conf/activemq.xml文件中的systemUsage节点配置,如下: &amp;amp;lt;systemUsage&amp;amp;gt; &amp;amp;lt;systemUsage&amp;amp;gt; &amp;amp;lt;memoryUsage&amp;amp;gt; //该子标记设置整个ActiveMQ节点的“可...
ActiveMQ的持久化方式
ActiveMQ持久化方式:AMQ、KahaDB、JDBC、LevelDB。1、AMQAMQ是一种文件存储形式,它具有写入速度快和容易恢复的特点。消息存储在一个个文件中,文件的默认大小为32M,如果一条消息的大小超过了32M,那么这个值必须设置大一点。当一个存储文件中的消息已经全部被消费,那么这个文件将被标识为可删除,在下一个清除阶段,这个文件被删除。AMQ适用于ActiveMQ5.3之前的版本。
关于ActiveMq的持久化订阅
1. ActiveMq 客户端 2 修改 clientId 与 durableSubscriptionName的值,每次启动 都会在ActiveMq实列注册持久定阅者,通过控制台可以看到多个持久订阅者,如图 数据库中表记录如下select * from ...
ActiveMQ(十)--持久化和非持久化的总结
持久化消息 这是ActiveMQ的默认传送模式,此模式保证这些消息只被传送一次和成功使用一次。对于这些消息,可靠性是优先考虑的因素。可靠性的另一个重要方面是确保持久性消息传送至目标后,消息服务在向消费者传送它们之前不会丢失这些消息。 这意味着在持久性消息传送至目标时,消息服务将其放入持久性数据存储。如果消息服务由于某种原因导致失败,它可以恢复此消息并将此消息传送至相应的消费者。虽然这样增加了消...
activeMQ持久化策略介绍与配置方式
activeMQ中对于投递模式设置为持久化的消息,broker接收到到消息之后,会先把消息存储到存储介质,然后再转发到消息的监听者,activeMQ提供以下几种消息持久化策略。 KahaDB存储 KahaDB是默认的持久化策略,所有消息顺序添加到一个日志文件中,同时另外有一个索引文件记录指向这些日志的存储地址,还有一个事务日志用于消息回复操作。是一个专门针对消息持久化的解决方案,它对典型的消...
ActiveMQ订阅模式持久化实现
我的诉求是,建一个订阅通道,然后多个客户端监听,当某个客户端掉线后,再上线的时候可以收到它没有接收到的消息。 本文主要参考了《使用Spring配置ActiveMQ的发布订阅模式》(http://nettm.iteye.com/blog/1828268),将他们复制粘贴过来,基本上就ok了。 在找到这篇文章前,《如何实现ActiveMq的Topic的持久订阅》(http://www.my
ActiveMQ整合spring实现持久化消息接收
       在我们生产过程中往往存在两个项目接口调用场景,但是这中场景下我们很难保证百分百的网络问题和服务问题,所在就会导致我们在调用接口的时候连接超时或者访问不到的情况发生,以致我们的数据丢失。         出现以上问题不用担心,本文就是重点介绍如何通过ActiveMQ的持久化操作解决请求丢失数据。 首先我们需要了解一下ActiveMQ的持久化方式,多的不说我们这里介绍两种持久化方式,...
ActiveMQ 持久化(文件),查询队列剩余消息数、出队数的实现
《ActiveMQ发消息和收消息》详细介绍了ActiveMQ发消息和收消息,消息保存在消息队列(queue)中,消息队列数据保存在计算机内存中,假如ActiveMQ服务器由于某些原因突然停止,那消息队列中内容还在吗?用事实说话吧,把ActiveMQ服务器停止,然后再看看ActiveMQ页面上的队列信息queue,如图: activemq_queue队列中的信息全部丢失了。为了解决
activemq 持久化topic处理过程及其消息游标轮转问题的解决方案
    如果消息是持久化的,activemq收到消息后会存储在持久性cursor中。对于非持久化消息,会存储在File Cursor中。从名称上File Cursor是持久性cursor,实际上activemq把FilePendingMessageCursor作为非持久性cursor。File Cursor首先在内存中保存消息的引用,如果内存使用量达到上限,那么会把消息引用保存到临时文件中,这...
ActiveMQ Spring 整合持久化到数据库的实现
http://topmanopensource.iteye.com/blog/1070096
ActiveMQ5.14.3持久化信息到MySQL的一些注意事项
最近都在基于ActiveMQ实现安卓端的推送,遇到了一些问题,都记录一下。 ActiveMQ默认情况下使用KahaDB存储数据,网上也有很多持久化消息到MySQL的方法,基本差不多,如这篇所示: Activemq持久化消息到MySql数据库中 可能以前ActiveMQ的版本这样做是可以的,但是我自己经过这样试之后启动activemq.bat时报错,错误信息如下: nested e
JMS学习十一(Spring+ActiveMQ消息持久化,Topic持久化订阅)
消息持久化就是将消息保存到磁盘,这样的好处就是如果服务挂了,则消息还保存在磁盘不会丢失,服务起来后还能找到消息并在此发送,消息的持久化和消息的发送模型是没有关系的。 消息持久化的配置很方便的,所以其他的那些就不写出来了,可以看看上一篇文章中的同步异步实现方式。这里只把持久化配置的列出来。 <bean class="org.springframework.j
ActiveMQ5.8 消息持久化 高效日志的设置
ActiveMQ默认的消息持久化方式: 均在 ActiveMQ_HOME/conf/activemq.xml文件中配置实现。   第一种方式  持久化为数据文件方式是ActiveMQ默认使用方式 配置如下:   &amp;lt;persistenceAdapter&amp;gt;        &amp;lt;kahaDBdirectory=&quot;${activemq.data}/kahadb&quot;/&amp;gt...
ActiveMQ的消息持久化到Mysql数据库
1、将连接Mysql数据库的jar文件,放到ActiveMQ的lib目录下        2、修改ActiveMQ的conf目录下的active.xml文件,修改数据持久化的方式        2.1  修改原来的kshadb的持久化数据的方式 -->        2.2  连接Mysql的配置(注意配置文件放置的位置)
初学activeMQ 持久化的问题(一)
这两天开始接触学习activeMQ,基础的学习那些我就不论述了,网上也很多资料,我现在是把自己学习中遇到的问题记录下来,我学习到持久化相关的问题。我学习的是mysql数据库,其他数据库配置网上也方法就上网搜了一下方法,基本的是配置activemq.xml。 配置如下: 把这个改成 然后在配置文件中的broker节点外增加:
eclipse paho包对于ActiveMQ持久化订阅者的设置
在实现基于ActiveMQ的电影推送系统的过程中,因为是Android端的应用程序,而在查阅网上的各种资料发现,Android端直接用原生的MQTT来做推送的比较少,而eclipse paho这个封装好的API似乎比较好用在Android端的推送上,于是就采用这个包来做。推送的大致流程可以查看这个网页:基于paho包的Android demo 将逻辑写在Service可以使程序在后台执行
使用ActiveMQ传输文件时出现的问题
[size=large] 我在使用ActiveMQ传输文件时,采用的是如下方案: 首先,对文件按字节读取,每次读取一定的字节数比如4096个字节放入字节数组中,然后,将该字节数组封装成字节型的消息发送,发送完成后再读取下一个字节段,一直到读取完毕为止。由于系统考虑到在传输大文件时,可能会由于网络中断等原因造成的文件传输中断,在文件的传输时实现了断点续传的功能,当每次发送成功一...
ActiveMQ与Spring整合:(2)数据的持久化
由于本系列文章并不是介绍activemq的基本概念和使用,不会activemq基本概念的人可能会觉得云里雾里的,所以最好找一些介绍activemq基本使用的文章。本篇文章主要继承上一篇博客,重点介绍使用,而不是知识点的介绍。         在学习java消息服务JMS时候,我们经常会设置消息的持久化方式,但是设置了持久化之后,消息如何保存呢?这篇博客主要介绍消息是如何持久化的。消息持久化主要有
ActiveMQ(三)———spring消息持久化配置
一、Topic与Queue比较1、Topic Publish Subscribe messaging 发布订阅消息。 topic数据默认不落地,是无状态的。 并不保证publisher发布的每条数据,Subscriber都能接受到 一般来说publisher发布消息到某一个topic时,只有正在监听该topic地址的sub能够接收到消息;如果没有sub在监听,该topic就丢失了。 一对多的消息发布
ActiveMQ持久化到mysql数据库
一:修改activeMq.xml 配置数据库连接信息: MQ本身不带mysql驱动需要把mysql驱动jar,复制到lib目录下,数据库连接池用的是MQ中自带的dbcp2 启动的时候如果报错: Cannot load JDBC driver class 'com.mysql.jdbc.Driver 有可能是mysql驱动包的版本问题,楼主的是这样换了一个版本就可以正常启动了。 ...
springboot activemq 2 持久化消息 与 持久化订阅
接着上一节http://blog.csdn.net/cons_step_by_step/article/details/78300427。 改动1.减少springboot重复创建session的问题 jmsTemplate的地方加入了CachingConnectionFactory,这样配置可以 @Bean(name = "myJmsTemplate") public JmsTem
Spring+ActiveMQ消息持久化,Topic持久化订阅
消息持久化就是将消息保存到磁盘,这样的好处就是如果服务挂了,则消息还保存在磁盘不会丢失,服务起来后还能找到消息并在此发送,消息的持久化和消息的发送模型是没有关系的。 消息持久化的配置很方便的,所以其他的那些就不写出来了,可以看看上一篇文章中的同步异步实现方式。这里只把持久化配置的列出来。 [html] view plain copy  print?
关于ActiveMQ中Topic持久化配置问题
说明:记录一下在ActiveMQ中踩过的坑。 关键字:jms:listener-container,topic订阅持久化。 Demo的目录结构(说明中有各个文件的作用) 不懂ActiveMQ的可以,在网上搜搜,有很多很好的博客,在这里我只简单的介绍怎么用,标注一些坑。哪里不足,欢迎提出。前提:activeMQ(解压之后的文件夹)–conf –activemq.xml applicat
ActiveMQ消息持久化与消息有效期
在生产环境中,手工签收的方式比较合适,因为某个消息在消费端没有成功处理的情况下,可以不给ActiveMQ消息中间件发送针对这个消息的确认签收。同时,记录相关信息到日志文件或数据库中,以便后续做相应处理。在默认情况下,消息在ActiveMQ消息中间件中是不会过期的,可以根据实际的项目需要去设置消息的过期时间,单位毫秒。 消息优先级总共十个,即0-9。其中,0-4是普通消息,5-9是加急消息
Activemq数据安全机制——Activemq中的KahaDB消息日志的恢复机制
KahaDB 支持多种机制在系统异常关闭后重启并恢复。包括检测数据文件丢失和还原损坏的metadata。这些特性并不能完全保证系统异常关闭不造成消息丢失。如果需要保证系统的高可靠性,建议部署到容灾系统上。例如RAID磁盘阵列中。  当broker正常关闭时, KahaDB message store会将所有的缓存数据刷到文件系统中。尤其是这些数据:  1、所有未处理的日志数据  2、所有
ActiveMQ(十八)--ActiveMQ消息存储持久化-4-(JDBC)
    &amp;lt;jdbcPersistenceAdapter dataSource=&quot;#mysql-ds&quot; createTablesOnStartup=&quot;false&quot; /&amp;gt; &amp;lt;bean id=&quot;mysql-ds&quot; class=&quot;org.apache.commons.dbcp.BasicDataSource&quot; destroy-method=&quot;close&quot;&
JMS学习七(ActiveMQ消息持久化)
上一篇文章中消息的持久化订阅有个前提条件就是消息的持久化,也就是将发送的消息保存磁盘,之后能再次获取,ActiveMQ提供了好几种消息持久化方案比如kahaDB 、JDBC等,下面来一个个看。
Sping集成activeMQ演示queue和topic模式,持久化
  本文源码: https://download.csdn.net/download/qq_23009109/10605210 包含 activemq服务器, 已经配置好了数据库,按说明改下自己的 mysql数据库地址,用户名和密码,包含queue,topic持久化 第一步:  一 、下载activemq 官网:http://activemq.apache.org/download.htm...
ActiveMQ的消息持久化机制
ActiveMQ的消息持久化机制 ActiveMQ的持久化机制包含 JDBC: 持久化到数据库 AMQ :日志文件(已基本不用) KahaDB : AMQ基础上改进,默认选择 LevelDB :谷歌K/V数据库 在activemq.xml中查看默认的broker持久化机制。  默认消息持久化到ActiveMQ路径下的data目录下。   1. 将持久化方式改为JDBC的方...
ActiveMQ Oracle数据库持久化配置
ActiveMQ提供了可扩展的持久化方案,下面是我测试可行的oracle数据库持久化配置方案。注意: 需要在ActiveMQ中加入jdbc依赖的jar包,实测用到的jar包有: commons-pool-1.5.4.jar commons-dbcp-1.4.jar ojdbc14-10.2.0.4.0.jar 如果没有上述jar包启动ActiveMQ服务器会报错。ActiveMQ、SpringF
文章热词 机器学习教程 Objective-C培训 交互设计视频教程 颜色模型 设计制作学习
相关热词 mysql关联查询两次本表 native底部 react extjs glyph 图标 区块链问题 ios视频开发问题