ActiveMQ之組合Destination

ActiveMQ之虛擬主題中,我們假設了一個場景,使用了ActiveMQ中的虛擬主題進行解決的,其實該問題使用組合Destination的方式也是可以進行解決的。


組合隊列允許用一個虛擬的Destination代表多個Destinations。這樣就可以通過composite destinations在一個操作中同時向多個destination發送消息。多個Destination之間採用 , 進行分割。

  例如:Queue queue = new ActiveMQQueue("FOO.A, FOO.B, FOO.C");
  或者:Destination destination = session.createQueue("my-queue,my-queue2");


如果希望使用不同類型的Destination,那麼需要加上前綴如queue://topic:// ,例如:
Queue queue = new ActiveMQQueue("test.queue,topic://test.topic");



所以這裏我們就可以利用組合Destination來解決ActiveMQ之虛擬主題中的消費者集羣問題的,如下:
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述


然後消息發送者端如下:
在這裏插入圖片描述


其餘代碼和之前介紹ActiveMQ的使用一致,測試結果和ActiveMQ之虛擬主題一致,這裏就不展示了。


這裏如果有業務要求,我們在消費者端還可以夾雜着發送一個Topic模式的消息,如下:
在這裏插入圖片描述


另外在ActiveMQ鏡像隊列中提到,Queue模式下,每一個消息只能被一個消費者消費,然而有時我們希望能夠監視生產者和消費者之間的消息流,使用組合Destination的方法也是可行的。

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