ActiveMQ - Kaha 持久性填满磁盘

ActiveMQ - Kaha persistence filling up disk

我正在使用 ActiveMQ 和 kahadb 5.7.0。 我的经纪人配置如下:

<amq:broker id="broker" useJmx="true" persistent="true" useShutdownHook="false"  >
        <amq:transportConnectors>
            <amq:transportConnector uri="tcp://localhost:61616?jms.messagePrioritySupported=true" />
        </amq:transportConnectors>
  <amq:persistenceAdapter>
     <amq:kahaPersistenceAdapter directory="activemq-data" maxDataFileLength="10g"/>
   </amq:persistenceAdapter>

    <amq:destinationPolicy>
            <amq:policyMap>
                <amq:policyEntries>
                    <amq:policyEntry queue=">" producerFlowControl="false" prioritizedMessages="true" >  <amq:pendingQueuePolicy>
                        <amq:fileQueueCursor />
                    </amq:pendingQueuePolicy>
                    </amq:policyEntry>
        </amq:policyEntries>
            </amq:policyMap>
        </amq:destinationPolicy>
 <amq:systemUsage>
            <amq:systemUsage>
                <amq:memoryUsage>
                    <amq:memoryUsage limit="2 gb"/>
                </amq:memoryUsage>
                <amq:storeUsage>
                    <amq:storeUsage limit="20 gb"/>
                </amq:storeUsage>
                <amq:tempUsage>
                    <amq:tempUsage limit="5 gb"/>
                </amq:tempUsage>
            </amq:systemUsage>
        </amq:systemUsage>
    </amq:broker>

我遇到的问题是我看到目录 activemq-data 中的文件越来越大,尤其是带有数据队列数据的文件。他们中的大多数达到了 10g 的限制

为什么不清理那些文件?

第一件事是更新到最近的版本,5.7.0 已经有好几年了,而且很多很多......从那时起修复了许多错误。

您需要调查导致数据保留在商店中的原因,这一切都归结为您如何使用代理以及您的消费者如何阅读和确认(或不确认)消息放置在经纪人队列中。一个常见的问题是使用消息选择器的消费者将旧的未使用消息留在代理上,这将导致数据被保留。

ActiveMQ 网站上有一段非常好的 documentation 解释了调试日志文件保留的步骤。