我正在使用 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/