一、通配符(wildcards)
- wildcards用來支持名字分層體系,它不是JMS規範的一部分,是ActiveMQ的擴展
ActiveMQ支持一下三種wildcards
1:“.” 用於作爲路徑上名字間的分隔符
2:“*” 用於匹配路徑上的任何名字
3:“>” 用於遞歸地匹配任何以這個名字開始的destination - 示例,假設有兩個destinations
PRICE.STOCK.NASDAQ.IBM (IBM在NASDAQ的股價)
PRICE.STOCK.NYSE.SUNW (SUN在紐約證券交易所的股價)
那麼:
1:PRICE.>:匹配任何產品的價格波動
2:PRICE.STOCK.>:匹配任何產品的股票價格波動
3:PRICE.STOCK.NASDAQ.:匹配任何在NASDAQ栽面的產品的股票價格變動
4:PRICE.STOCK..IBM:匹配任何IBM的產品的股票價格波動 - 客戶化路徑分隔符,比如想用“/”來替換“.”
<plugins> <destinationPathSeparatorPlugin/> </plugins>
二、組合隊列
組合隊列允許用一個虛擬的destination代表多個destinations。這樣就可以通過composite destinations在一個操作中同時向多個queue發送消息。
1:客戶端實現的方式
2:在xml配置實現的方式
3.使用filtered destinations,在xml配置實現的方式
4.避免在network連接broker中,出現重複消息
三、配置啓動的Destinations
如果需要在ActiveMQ啓動的時候,創建Destination的話,可以如下配置:
四、刪除不活動的Destinations
一般情況下,ActiveMQ的queue在不使用之後,可以通過web控制檯或是JMX方式來刪除掉。也可以通過配置,使得broker可以自動探測到無用的隊列(一定時間內爲空的隊列)並刪除掉,回收響應資源。如下配置:
說明:
schedulePeriodForDestinationPurge:設置多長時間檢查一次(毫秒),默認爲0
inactiveTimeoutBeforeGC:設置當Destination爲空後,多長時間被刪除,默認爲60
gcInactiveDestinations:設置刪除不活動隊列,默認爲false
五、Destination選項
隊列選項是給consumer在JMS規範之外添加的功能特性,通過在隊列名稱後面使用類似URL的語法添加多個選項。包括:
使用示例:
六、虛擬Destinations
爲了解決這兩個問題,ActiveMQ中實現了虛擬Topic的功能
七、 鏡像隊列
八、每個Destination單獨策略配置