如何模拟"完整队列"在ActiveMQ上?

时间:2015-11-16 10:53:35

标签: java activemq

当ActiveMQ耗尽系统资源时,我们最近在测试环境中遇到了一些问题。

如何在本地模拟此方案以重现问题并测试潜在的修复程序?

1 个答案:

答案 0 :(得分:3)

我设法通过更改ActiveMQ配置来模拟场景。

您可以在ActiveMQ的配置文件中设置可用的系统资源,您可以在ActiveMQ安装目录的libexec/conf/activemq.xml找到该文件。

例如,您可以更改默认值:

  <systemUsage>
    <systemUsage>
        <memoryUsage>
            <memoryUsage percentOfJvmHeap="70" />
        </memoryUsage>
        <storeUsage>
            <storeUsage limit="100 gb"/>
        </storeUsage>
        <tempUsage>
            <tempUsage limit="50 gb"/>
        </tempUsage>
    </systemUsage>
  </systemUsage>

改为小值:

  <systemUsage>
    <systemUsage>
        <memoryUsage>
            <memoryUsage percentOfJvmHeap="1" />
        </memoryUsage>
        <storeUsage>
            <storeUsage limit="512 kb"/>
        </storeUsage>
        <tempUsage>
            <tempUsage limit="512 kb"/>
        </tempUsage>
    </systemUsage>
  </systemUsage>

运行或重新启动ActiveMQ,它应该很快就会填满。

ActiveMQ文档中的更多信息:http://activemq.apache.org/producer-flow-control.html