尋找一些關於systemUsage和destinationPolicy配置的幫助,因爲我在完全理解systemUsage,destinationPolicy和流量控制之間的關係時有些困難。ActiveMQ destinationPolicy和systemUsage配置
我們所有的信息都是持久的! producerFlowControl開啓。
所以我們給ActiveMQ說最大512MB的堆空間。
我們systemUsage設置如下:
<systemUsage>
<systemUsage>
<memoryUsage>
<memoryUsage limit="200 mb"/>
</memoryUsage>
<storeUsage>
<storeUsage limit="10 gb"/>
</storeUsage>
<tempUsage>
<tempUsage limit="1000 mb"/>
</tempUsage>
</systemUsage>
</systemUsage>
我們的目的地如下政策:
<destinationPolicy>
<policyMap>
<policyEntries>
<policyEntry topic=">" producerFlowControl="true" memoryLimit="1mb">
<pendingSubscriberPolicy>
</pendingSubscriberPolicy>
</policyEntry>
<policyEntry queue=">" producerFlowControl="true" memoryLimit="1mb">
</policyEntry>
</policyEntries>
</policyMap>
</destinationPolicy>
任何人都可以驗證,如果下面是正確的:
這意味着每個人隊列/主題內存限制爲1MB。當這個1MB被擊中時究竟發生了什麼,製作者的隊列塊還是頁面到光盤?
所有隊列和主題允許的內存總量爲200MB。這意味着我們可以有200個頻道以1MB的全部容量運行。我們目前總共有16個隊列和話題,顯然是永遠不會達到的。
我們是否更好地移除內存限制上的單個策略條目並在各個通道之間共享內存?
如果我們這樣做,他們會在什麼時候阻止?
非常感謝任何幫助!可以paypal給你一些啤酒錢!
需要注意的是,如果達到內存限制,隊列對於事務處理消費者來說也會顯示爲「空」,直到其他人釋放空間爲止。此外 - 遊標僅用於「存儲非持久性消息,如果你用盡memoryLimit」,是嗎? – rogerdpack