activeMQ fileQueueCursor(堆大小)

activeMQ fileQueueCursor (heap size)

我使用 AcviteMq v 5.9.1 和非持久消息。我的问题是

OutOfMemory: heap size

我知道此站点上存在此类问题,但我找不到我的具体问题。我知道非持久消息存储在内存中,所以我得到了这个错误。我也知道我可以增加 Xms/Xmx,但这并不能解决问题(当我收到更多消息时,我也可能会收到此错误)。

http://activemq.apache.org/message-cursors.html

我在 activeMq 站点上看到有 3 个游标,fileQueueCurosr 将存储的消息写入文件。我为此光标设置了配置,但它也不起作用。

 <policyEntry queue="foo.bar.>">
    <pendingQueuePolicy>
        <fileQueueCursor />
    </pendingQueuePolicy>
  </policyEntry>

也许,有人有类似的问题,可以帮助我吗?或者也许这个光标不够好,我必须设置其他东西?

-Xmx和Xmx默认设置为1GB/1GB。

////@kartik 回答后更新 23.04.15

<policyEntry queue="foo.bar.>" memoryLimit="10mb" (or 30mb) producerFlowControl="false">
        <pendingQueuePolicy>
            <fileQueueCursor />
        </pendingQueuePolicy>
      </policyEntry>
  1. 使用 fileQueueCursor 与 memoryLimit broker 可以使用。例如,在以下情况下,代理可以使用可用 RAM 的总量为 1.5 GB。 " memoryLimit="1500mb" producerFlowControl="false" >

  2. 设置内存使用百分比。之后,代理会将消息推送到 KahaDB tmp 文件中。