我经常在 active.log 文件中遇到以下 WARN 问题。不明白每个警告到底意味着什么。有人可以帮助我理解这个问题以及如何修复
1, 2017-06-07 11:11:12,051 | WARN | Temporary Store limit is 51200 mb (current store usage is 0 mb). The data directory: /local/apps/apache-activemq-5.14.3/data only has 5924 mb of usable space. - resetting to maximum available disk space: 5924 mb | org.apache.activemq.broker.BrokerService | main
2, 2017-06-07 11:36:02,358 | WARN | Transport Connection to: tcp://10.235.454.23:59053 failed: java.io.EOFException | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///10.123.343.345:59053@61616 2017-06-07 11:37:58,441 | WARN | Transport Connection to: tcp://10.123.345.768:46840 failed: java.io.EOFException | org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ Transport: tcp:///10.240.123.234:46840@61616
3, 2017-06-07 11:41:54,376 | WARN | persistent="false", ignoring configured persistenceAdapter: KahaDBPersistenceAdapter[/local/apps/apache-activemq-5.14.3/data/kahadb] | org.apache.activemq.broker.BrokerService | main
最佳答案
要解决此错误/警告,您应该将代理的临时存储限制限制为磁盘上可用的值。该值是通过 apache-activemq-5.9.0-bin\apache-activemq-5.9.0\conf\activemq.xml 中的 tempUsage 限制在代理的系统使用配置中设置的:
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage limit="64 mb"/>
</memoryUsage>
<storeUsage>
<storeUsage limit="100 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="50 gb"/>
</tempUsage>
</systemUsage>
</systemUsage>
虽然代理在这种情况下最初可能执行正常,但它有可能导致意外结果,例如 IOException,而不是在资源耗尽时触发生产者流控制。建议通过适当调整使用限制来解决这种情况。
根本原因
代理已请求分配比可用资源更多的磁盘资源。 在设置临时内存之前,请检查您的activemq所在的磁盘空间内存。
ActiveMQ 提供了调整每个目标的内存使用情况的机制
<policyEntry queue=">" producerFlowControl="false" memoryLimit="256mb">
我在队列名称中使用了通配符[>用于递归匹配从此名称开始的任何目的地]在上面的配置中它适用于任何队列 无论如何,对于每个目的地,您都可以使用
每个目的地 - 设置目的地的内存限制,例如,要将 FOO.BAR.TEST 队列上的内存量限制为 10 MB,请定义如下策略条目:
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic="FOO.BAR.TEST" memoryLimit="5MB" />
</policyEntries>
</policyMap>
</destinationPolicy>
关于java - Apache ActiveMQ 临时存储限制警告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44413417/