ActiveMQ目标策略和系统使用配置
正在寻找有关systemUsage和destinationPolicy配置的帮助,因为我很难完全理解systemUsage、destinationPolicy和流控制之间的关系 我们所有的信息都是持久的!producerFlowControl已打开 所以我们给ActiveMQ一个最大512MB的堆空间 我们的系统使用设置如下:ActiveMQ目标策略和系统使用配置,activemq,Activemq,正在寻找有关systemUsage和destinationPolicy配置的帮助,因为我很难完全理解systemUsage、destinationPolicy和流控制之间的关系 我们所有的信息都是持久的!producerFlowControl已打开 所以我们给ActiveMQ一个最大512MB的堆空间 我们的系统使用设置如下: <systemUsage> <systemUsage> <memoryUsage> &
<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>
我们的目的地政策如下:
<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个队列和主题,显然这是永远无法到达的
我们是否最好删除内存限制上的单个策略项,并在各个通道之间共享内存
如果我们这样做,他们会在什么时候阻止
非常感谢任何帮助!贝宝能给你一些啤酒钱吗 你在这里提到了很多问题,我将按顺序回答 memoryUsage对应于分配给内存中存储的内存量。storeUsage对应于应为KahaDB商店提供多少空间。您可以使用其中一个,这取决于您是否希望代理持久化消息。tempUsage是文件游标的特例(http://activemq.apache.org/message-cursors.html)-一种在超过内存限制时将内存从内存存储溢出到磁盘的机制(如果需要,必须在目标级别配置此行为) policyEntry@memoryLimit是单个目的地的子限额 超出内存限制时会发生什么情况取决于是否启用了生产者流量控制(PFC)。默认情况下,对于队列,它是打开的,对于主题和异步发送到队列,它是关闭的;所有这些都可以在policyEntry中配置(http://activemq.apache.org/per-destination-policies.html) 当PFC开启时,如果您达到“内存限制”,您的客户端将阻塞,直到有人通过使用商店中的消息释放空间。如果关闭,发送将抛出一个异常(客户端优于代理)。“内存限制”是指memoryUsage在所有队列中定义的限制,或者是队列特定的限制(可能先达到前者,后达到后者)
您是否需要特定于目的地的限制取决于您的用例。我建议您忽略它,除非您试图实现特定的结果。请注意,如果您达到内存限制,在其他人释放空间之前,对于事务处理的消费者,队列也会显示为“空”。而且——游标基本上只在“内存限制用完时存储非持久性消息”时有用,对吗?