生產者在某個topic傳送了多條訊息後,這個時候非持久訂閱者才訂閱,那麼它是不能獲取之前生產者傳送的資訊的。或者,由於網路問題,非持久型別的消費者處於非活躍狀態,無法接收到生產者傳送的訊息。使用訊息恢復策略,可以解決上面的問題。activemq目前支援乙個定時或固定大小的恢復緩衝區,在你連線到broker後,在一段時間內的訊息會重新傳送給訂閱者。
示例:
topic
=">"
>
>
maximumsize
="1024"
/>
subscriptionrecoverypolicy
>
policyentry
>
示例:
topic
=">"
>
>
maximumsize
="100"
/>
subscriptionrecoverypolicy
>
policyentry
>
示例:
topic
=">"
>
>
/>
subscriptionrecoverypolicy
>
policyentry
>
示例:
topic
=">"
>
>
/>
subscriptionrecoverypolicy
>
policyentry
>
示例:
topic
=">"
>
>
query
="color='red' and name='tom'
"/>
subscriptionrecoverypolicy
>
policyentry
>
示例:
topic
=">"
>
>
recoverduration
="60000"
/>
subscriptionrecoverypolicy
>
policyentry
>
示例:
topic
=">"
>
>
/>
subscriptionrecoverypolicy
>
policyentry
>
注意:需要設定retroactive屬性為true。即:
topic topic = session.
createtopic
("test.topic?consumer.retroactive=true");
messageconsumer consumer = session.
createconsumer
(topic)
;
參考:
也可以參考:
ActiveMQ發布訂閱模式
訊息監聽 訂閱者一 author administrator public class listener implements messagelistener catch jm ception e 訊息監聽 訂閱者二 author administrator public class listene...
ActiveMQ訊息策略
activemq訊息策略 activemq中提供了眾多的 策略 policy 它們可以在broker端為每個通道 定製 訊息的管理方式。本文將簡單描述主要的幾種policy。一.dispatchpolcicy 策略 topic 此策略表明broker端訊息 給多個consumer時,訊息被傳送的順序...
ActiveMQ之定期清理離線的持久訂閱者
通常,我們不希望系統中存在長時間離線的持久訂閱者,因為broker需要為它們保留它們訂閱的topic的所有訊息。而且隨著時間的推移,將會導致達到儲存限制,從而導致系統變慢。當然,你可以通過jconsole或web console等管理工具來手動取消不活躍的持久訂閱者。但顯然可以採取更多措施來幫助管理...