ActiveMQ鏡像隊列

在之前我們介紹了ActiveMQ的Queue模式和Topic模式,其中Queue模式下,每一個消息只能被一個消費者消費,然而有時我們希望能夠監視生產者和消費者之間的消息流。


這裏我們可以通過ActiveMQ之組合Destination的方式也是可以的,不過這種方式就要求所有發送Queue模式消息,就必須的都要加上一個額外的Destination,這樣配置就可能會很麻煩。所以ActiveMQ這裏還爲我們提供了鏡像隊列。


在開啓鏡像隊列之後,Broker會把發送到某一個隊列上的所有消息轉發到一個名稱類似的topic,因此監控程序只需要訂閱這個topic即可。


這裏啓用MirroredQueue,首先要將BrokerService的useMirroredQueues屬性設置爲true,如下:
在這裏插入圖片描述


然後我們就進行測試,就發送一個普通的Queue消息,然後進行查看其控制檯的Topic菜單,如下:
在這裏插入圖片描述


從上述發現其鏡像隊列缺省是VritualTopic.Mirror. ,如果有需要的話,我們可以通過<destinationInterceptors>設置其屬性,如鏡像隊列的前綴、後綴等,如下:
在這裏插入圖片描述
在這裏插入圖片描述



上述方法我們就利用了鏡像隊列將Queue模式的消息保留下來,存在到對應的Topic鏡像隊列中,然後我們如果向對其進行處理就可以對其Topic進行持久化訂閱。


其實鏡像隊列,包括ActiveMQ死信隊列都沒有什麼特別,我們都是可以將其看成和其它隊列一致,對其進行相關的處理的。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章