PendingMessageLimitStrategy
慢消费者会对non-durable topic带来问题。慢消费者会强制代理在内存中保留旧消息。一旦填满,就会进一步减缓消费速度。
解决方案:使用PendingMessageLimitStrategy策略。
除了在预获取缓冲区设置大小之外,在内存中保留待处理消息。通过该策略设定待处理消息大小。
ConstantPendingMessageLimitStrategy :设定固定值。
PrefetchRatePendingMessageLimitStrategy:设置乘数因子(在prefetchSize的基础上,乘该乘数因子,即为设定的保留值。)
或者:
**注:**limit的值如果等于0,则除了预获取量之外,不保留任何消息。如果大于0,保留该消息量,如果超过数量限制,则丢弃消息。如果小于0,禁用丢弃消息。此外,设定的保留值应该大于prefetchSize。
MessageEvictionStrategy
该策略针对的是慢消费者,超过保留的数量限制时,消息的剔除策略。
OldestMessageEvictionStrategy:剔除旧消息
OldestMessageWithLowestPriorityEvictionStrategy:剔除旧消息中权重低的消息
UniquePropertyMessageEvictionStrategy:剔除带有指定property的消息
或者:
<policyEntry topic=">">
<messageEvictionStrategy>
<oldestMessageWithLowestPriorityEvictionStrategy/>
</messageEvictionStrategy>
</policyEntry>
或者:
<policyEntry topic=">">
<messageEvictionStrategy>
<uniquePropertyMessageEvictionStrategy propertyName="test"/>
</messageEvictionStrategy>
</policyEntry>
原文地址:http://www.manongjc.com/article/62599.html