ActiveMQ通配符式訂閱

之前我們在介紹ActiveMQ的時候,在進行舉例的時候其生產者和消費者配置的目的地Destination一般都是一致的,不然我們的消費者也接受不到生產者發送的消息呀,但是其實我們的消費者在配置Destination的時候是可以進行通配符Wildcards訂閱的。


Wildcards用來支持聯合的名字分層體系(federated name hierarchies)。它不是JMS 規範的一部分,而是ActiveMQ 的擴展。ActiveMQ 支持三種 .*>

  • . 用於作爲路徑上名字間的分隔符
  • * 用於匹配路徑上的任何名字
  • > 用於遞歸地匹配任何以這個名字開始的destination



這裏我們在消息的生產者配置的目的地Destination如下:
在這裏插入圖片描述

這裏我們消費者想要獲取上述com.bax.test.mq中的消息時,我們設置相同的名稱肯定是可以獲取了,這裏我們在消費者中使用通配符該如何配置呢,如下:
在這裏插入圖片描述

上述消費者不僅可以獲取到com.bxs.test.mq的消息,還可以獲取com.bxs.test2.mqcom.bxs.dev.mq 等等,其中的*可以由任何的名字進替換,但是不能有分隔符.存在,如下:
在這裏插入圖片描述

這樣的com.*.mq是無法匹配到com.bxs.test.mq的,想要將第二個名字也進行模糊配置,就必須用兩個符號,如上。



如果不想使用兩個*,比如可能中間還有更多的分隔等等,這裏我們就可以使用>,該匹配符就沒有分隔符的限制了,如下:
在這裏插入圖片描述

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