春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();
私たちはすでにファンアウト交換を使用していますが、問題は私たちがedscontainer.setQueueNames(queue_name)を設定したspring amqpを使用していることです。自動削除キューを使用してこれを実現する方法 –
基本的に、このScneario ConnectionFactoryをどのように扱うことができますか?connectionFactory = new CachingConnectionFactory(); AmqpAdmin admin =新しいRabbitAdmin(connectionFactory); admin.declareQueue(新しいキュー( "myqueue")); –
???一般的に、手動で行う必要はありません。 'RabbitAdmin'はすべての'エンティティ 'とそれらの間のバインディングを自動的に処理します。彼らがもちろん豆として宣言されているならば。 'Queue' ctorsを参照してください。 'autoDelete'はその中の一つです。 –