ActiveMQ之訂閱恢復策略

2021-09-22 08:02:53 字數 1706 閱讀 5991

生產者在某個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等管理工具來手動取消不活躍的持久訂閱者。但顯然可以採取更多措施來幫助管理...