從ActiveMQ1.1開始,支持一種被稱爲組合目標的技術。這允許使用單個虛擬的JMS目的地來表示一個JMS目的地的集合。
例如,你可以使用組合目的地在一個操作中將消息發送到12個物理隊列。或再一次操作中將消息發送到一個主題和一個隊列。
可以在創建目的地或將目的地註冊到JNDI時,使用逗號分隔將多個目的地組合起來。
比如:
FOO.A,FOO.B,FOO.C
表示3個不同的目的地。這可以與隊列或主題一起使用,以表示一組3個目的地。如。
// send to 3 queues as one logical operation
Queue queue = new ActiveMQQueue("FOO.A,FOO.B,FOO.C");
producer.send(queue, someMessage);
如果希望混合和匹配目的地的類型,可以使用queue://或topic://前綴來區分目的地的類型。例如,在隊列中發佈消息,同時也可以對某個主題發出通知
// send to queues and topic one logical operation
Queue queue = new ActiveMQQueue("FOO.A,topic://NOTIFY.FOO.A");
producer.send(queue, someMessage);
還可以在broker配置組合目的地,這樣客戶端發送到單個目的地的消息將透明地複製到多個物理目的地。