jms - ActiveMQ 日志日志大小

标签 jms activemq

我正在使用 KahaDB 持久性适配器运行 ActiveMQ 5.3.0(是的,很快就会升级到 5.4.2,甚至 5.5.0)。它有 7 个队列,大部分时间都是空的,也就是说,一旦消息被放入队列,它就会在接下来的 5-10 秒内被消耗掉。然而,通过的消息量相当可观(每天只有几千条消息)。

问题是 KahaDB 数据目录填充了大量 db-X.log 文件(其中 X 是整数)。每个文件的大小为 32 MB,并且(因为我运行的几乎是默认配置)它们似乎是日志重做日志(因为默认日志文件长度为 32 MB)。它们占用了宝贵的空间(KahaDB 托管在 SSD 卷上)并且似乎是多余的,因为在我看来日志日志保存旧的(即出列的)消息。

所以问题是:如何摆脱日志日志文件?我只希望 KahaDB 只存储待处理的消息。

正如我所提到的,配置几乎是默认的。 Broker 元素只设置了 brokerName 和 dataDirectory 属性,而 kahaDB 只设置了目录属性。

最佳答案

如果您使用的是默认设置,那么这应该已经可以工作了。这些文件将保留的唯一原因是,如果您的使用者速度较慢并且消息正在备份等...

“cleanupInterval”属性控制清理这些文件的频率。默认情况下,这是 30 秒……这是一个将其设置为 5 秒的示例(并将日志大小减少到 100kb 以便于测试)

<kahaDB directory="${activemq.base}/data/kahadb" 
        journalMaxFileLength="100kb" 
        cleanupInterval="5000"/>

关于jms - ActiveMQ 日志日志大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6175203/

相关文章:

jms - Camel jms 到外部 activeMQ 的请求-回复给出 javax.jms.InvalidDestinationException : Cannot publish to a deleted Destination:

java - 哪个更好: PooledConnectionFactory or CachingConnectionFactory?

java - @Transactional 方法中的 Spring 事务处理 JMSTemplate

java - IBM MQ JMS 消息监听器

Spring,JMS - 无法为 XML 架构命名空间找到 Spring NamespaceHandler

python - 如何接收 STOMP 中丢失的消息?

java - JMS中上下文的目的是什么?

jms - ActiveMQ 如何处理关闭的 session

java - 在同一台机器上设置多个 ActiveMQ 代理时出错

activemq - MQTT 与 MQ 设计注意事项