2016-03-28 7 views
1

春rabbitMQ.Iに新しいですが、正しい次question..Pleaseがあります春のRabbitMQ匿名キュー

私は、すなわちアプリケーションの3つのインスタンスを持っています。

インスタンス1インスタンス2 インスタンス3

注:インスタンスの数が固定されていないこれらのインスタンスはnumber.Allこれらのインスタンスに固定する必要はないが、同じexchange..Asに耳を傾け、私の要件は、同じメッセージがあることshuldです/(number can)を変数にすることができます。これはspring-amqpを使用して実現します

メッセージを交換するためのキュー名とバインドを宣言すると、インスタンス間で分割されますが、rabbitmqメッセージが必要です交換所からのメッセージ)をすべてのキューに転送することができます。これはどのように達成できますか。匿名キューのようなものを聞いた...

キュー ステップ4を作成します:為替 作成手順3:接続ファクトリ ステップ2を作成します。作成しないXML宣言を通って、キューIDに

ステップ1を宣言するSPELを使用して春にプログラム的にこれを実現する方法

AMQP管理者がそのキューを宣言してから ステップ5:キューをバインドして交換する

また、インスタンスを停止すると、キューは自動生成されます。

本コードは以下のようsimliarある:

CachingConnectionFactory CF =新しいCachingConnectionFactory( "192.168.1.10"、5672)。

RabbitAdmin admin = new RabbitAdmin(cf); 

FanoutExchange testExchange = new FanoutExchange("testExchange", true, false); 
admin.declareExchange(testExchange); 

Queue testQueue = new Queue("testQueue", true, false, true); 
admin.declareQueue(testQueue); 

admin.declareBinding(BindingBuilder.bind(testQueue).to(testExchange)); 

SimpleMessageListenerContainer container = new SimpleMessageListenerContainer(); 
container.setConnectionFactory(cf); 
container.setRabbitAdmin(admin); 

container.setQueues(testQueue); 
container.setMessageListener(new MessageListenerAdapter() { 
    public void handleMessage(String text) { 
     System.out.println("Received : " + text); 
    } 
}); 
container.afterPropertiesSet(); 

container.start(); 

答えて

1

あなたはautodeletedキューに右の道を行くが、インスタンスごとに一意であるかもしれないが、彼らは、anonymousではないかもしれません。

ここの主な機能はFanout Exchangeです。正確にこのExchangeは、すべてのサブスクライブされた(バインドされた)キューに同じメッセージを送信できます。

詳細については、RabbitMQ Tutorialを参照してください。

+0

私たちはすでにファンアウト交換を使用していますが、問題は私たちがedscontainer.setQueueNames(queue_name)を設定したspring amqpを使用していることです。自動削除キューを使用してこれを実現する方法 –

+0

基本的に、このScneario ConnectionFactoryをどのように扱うことができますか?connectionFactory = new CachingConnectionFactory(); AmqpAdmin admin =新しいRabbitAdmin(connectionFactory); admin.declareQueue(新しいキュー( "myqueue")); –

+0

???一般的に、手動で行う必要はありません。 'RabbitAdmin'はすべての'エンティティ 'とそれらの間のバインディングを自動的に処理します。彼らがもちろん豆として宣言されているならば。 'Queue' ctorsを参照してください。 'autoDelete'はその中の一つです。 –

関連する問題