2016-09-20 15 views
1

私はスプリングブートでactivemqを使用します。 特定のサブスクライバにのみトピックを送りたい。これを達成するには、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(); 
} 

レッツは、私は2つの主題BOOKSや食べ物を送信することができますメッセージを持っていると言います。 加入者Aの場合はBOOKSのみ、加入者BのBOOKSとFOODの場合は利用可能です。

質問: ブローカーレベルで達成することは可能ですか?もしそうなら。私は、先のポリシーのようなものがあることを知っているが、私はそれを使用する方法がわからない:(

答えて

0

メッセージは、さまざまな方法でさまざまなトピックまたはキューの宛先にルーティングして固定することができる:セパレート

  1. メッセージヘッダー(トピック://イベント) a。メッセージヘッダー「EVENT_TYPE = 'FOOD'」または「EVENT_TYPE =メッセージ」を使用して、サブスクライバごとのトピック(トピック:// BOOKS、トピック:// FOOD) 'BOOKS' "
  2. 「書籍」ユーザーのみがトピック:// BOOKSを購読でき、「食品」ユーザーのみが購読できるように宛先を保護することができますトピックに:// FOOD
  3. トピックに公開し、キューに登録し、上記のすべてを最大限に活用する仮想トピックを使用します。トピック:たとえばへの公開// EVENTS、その後から購読:キュー://vConsumer.BOOKS.EVENTS、キュー://vConsumer.FOOD.EVENTS

リンク:

関連する問題