定期清理离线的持久订阅者

通常,对于用户而言,不希望系统中存在长时间离线的持久订阅者,因为Broker需要为其保留其订阅的Topic的所有消息。而且随着时间的推移,将会导致达到存储限制,从而导致系统变慢。

过期消息

一些应用程序发送的消息有一定的过期时间,可以通过设置策略属性设置检查消息的过期时间,如果这些消息存储在Broker上供离线的持久订阅者使用,需要在它们到期时将其删除,就像队列一样,现在默认是每30秒检查一次这些消息,可以使用适当的目标策略进行调整。如下配置,Broker每5分钟检查一次过期的消息。

<policyEntry topic=">" expireMessagesPeriod="300000"/>
移除不活跃的订阅者

通过配置Broker的属性自动取消在一段时间内不活跃的持久订阅者。

<broker name="localhost" offlineDurableSubscriberTimeout="86400000" 
                         offlineDurableSubscriberTaskSchedule="3600000">
属性 默认值 描述
offlineDurableSubscriberTimeout -1 删除非活动持久性订阅者的时间(以毫秒为单位)。 默认值-1,表示不删除它们。
offlineDurableSubscriberTaskSchedule 300000 检查频率(以毫秒为单位)。

上面的配置示例,表明Broker会每小时检查并删除已离线1天的订阅者。

results matching ""

    No results matching ""