2016-09-20 53 views
1

我使用activemq和spring引導。 我想只發送主題給特定的訂閱者。我知道要實現它,我可以在JMSListener上指定選擇器,但這意味着我已經向訂閱者發送了消息。我想要做的是在經紀人級別發送消息。 目前,我有下面的代碼:activemq在代理中向特定用戶發送消息

public Broker broker() throws Exception { 
    BrokerService broker = new BrokerService(); 
    broker.setBrokerName(BROKER_NAME); 
    broker.addConnector(BROKER_URL); 
    policy.setTopic(USER_TOPIC); 
    broker.start(); 
    return broker.getBroker(); 
} 

讓說我有一個能夠發送兩個問題的書籍和食品的消息。 對於訂戶A,僅有書籍可用,訂戶B書籍和食品。

問題: 是否有可能在經紀人層面實現它?如果是這樣的話。我知道有類似的目標政策,但我不知道如何使用它:(

回答

0

消息可以以多種方式被路由並固定到不同的主題或隊列目的地:

  1. 獨立(主題://食品,主題://食品)
  2. 單個主題,但使用消息標題(主題://活動) a。消息標題「EVENT_TYPE ='FOOD'」或「EVENT_TYPE = 'BOOKS'
  3. 您可以確保目的地的安全,因此只有'書籍'用戶可以訂閱主題://書籍,只有'食品'用戶可以訂閱以下主題://食品
  4. 使用發佈到主題的虛擬主題,訂閱隊列並獲得上述所有內容。比如發佈到:題目://事件,然後從訂閱:隊列://vConsumer.BOOKS.EVENTS,隊列://vConsumer.FOOD.EVENTS

鏈接:

相關問題