【问题标题】:Apache ActiveMQ Temporary Store limit warning?Apache ActiveMQ 临时存储限制警告?
【发布时间】:2018-05-17 16:37:27
【问题描述】:

我经常在 active.log 文件中遇到下面的 WARN 。不明白每个警告的确切含义。有人可以帮助我理解这一点以及如何解决

1, 2017-06-07 11:11:12,051 |警告 |临时存储限制为 51200 mb (当前存储使用量为 0 mb)。数据目录: /local/apps/apache-activemq-5.14.3/data 只有 5924 mb 的可用空间 空间。 - 重置为最大可用磁盘空间:5924 mb | org.apache.activemq.broker.BrokerService |主要的

2, 2017-06-07 11:36:02,358 |警告 |传输连接到:tcp://10.235.454.23:59053 失败:java.io.EOFException | org.apache.activemq.broker.TransportConnection.Transport |活动MQ 传输:tcp:///10.123.343.345:59053@61616 2017-06-07 11:37:58,441 |警告 |传输连接到:tcp://10.123.345.768:46840 失败:java.io.EOFException | org.apache.activemq.broker.TransportConnection.Transport |活动MQ 传输:tcp:///10.240.123.234:46840@61616

3, 2017-06-07 11:41:54,376 |警告 |持久=“假”,忽略 配置persistenceAdapter: KahaDBPersistenceAdapter[/local/apps/apache-activemq-5.14.3/data/kahadb] | org.apache.activemq.broker.BrokerService |主要的

【问题讨论】:

    标签: java apache tcp activemq


    【解决方案1】:

    要解决此错误/警告,您应该将代理的临时存储限制限制为磁盘上可用的值。这个值是通过 apache-activemq-5.9.0-bin\apache-activemq-5.9.0\conf\activemq.xml 中的 tempUsage 限制在 broker 的系统使用配置中设置的:

    <systemUsage>
       <systemUsage>
          <memoryUsage>
              <memoryUsage limit="64 mb"/>
          </memoryUsage>
          <storeUsage>
             <storeUsage limit="100 gb"/>
          </storeUsage>
          <tempUsage>
             <tempUsage limit="50 gb"/>
          </tempUsage>
       </systemUsage>
    </systemUsage>
    

    虽然代理在这种情况下最初可能表现良好,但它有可能导致意外结果,例如 IOExceptions,而不是在资源耗尽时触发生产者流控制。建议通过适当调整使用限制来解决这种情况。

    根本原因

    代理请求分配比可用磁盘资源更多的磁盘资源。 在设置 tempusage 内存之前,请检查您的 activemq 所在的磁盘空间内存。

    ActiveMQ 提供机制来调整每个目标的内存使用情况

    <policyEntry queue=">" producerFlowControl="false" memoryLimit="256mb">
    

    我在队列名称中使用了通配符 [> 用于递归匹配从此名称开始的任何目的地] 在上述配置中它适用于任何队列 无论如何,您可以使用每个目的地

    Per-destination — 为目标设置内存限制,例如,要将 FOO.BAR.TEST 队列上的内存量限制为 10 MB,请定义如下策略条目:

    <destinationPolicy>
        <policyMap>
            <policyEntries>
                <policyEntry topic="FOO.BAR.TEST" memoryLimit="5MB" />
            </policyEntries>
        </policyMap>
    </destinationPolicy>
    

    【讨论】:

    • 如你所说,我的磁盘空间小于定义值。我想知道以下配置是否: 将应用于单个队列或在代理中创建的所有队列。
    • 已在我上面的帖子中进行了编辑。如有任何查询,请回复
    猜你喜欢
    • 2015-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 2018-10-31
    • 2016-10-02
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多