2017-10-30 5 views
0

2つのアドレスを持つCachingConnectionFactoryを持っている場合、どのサーバーに接続しているかをいつどのように知ることができますか?手動で一方から他方へ手動で変更する最善の方法は何でしょうか?Spring AMQPとCachingConnectionFactory

/** Retrieve address of peer. */ 
InetAddress getAddress(); 

/** Retrieve port number of peer. */ 
int getPort(); 

その情報をコントロールするCachingConnectionFactoryではありません:host/portあなたは、あなたがすでにターゲットNetworkConnectionに相談してください接続されているを知って

CachingConnectionFactory cf = new CachingConnectionFactory(factory); 
String _addresses = host + ":" + port + "," + host2 + ":" + port2; 
cf.setAddresses(_addresses); 

おかげ

答えて

2

addressesオプションは、まさにこのことについてであることを別の手で

* @param addrs an array of known broker addresses (hostname/port pairs) to try in order 

com.rabbitmq.client.ConnectionFactory#createConnection()を参照してください。

したがって、すべてのアドレスエントリは同じクラスタ内になければなりません。そうしないと、異なるサーバー上の異なるエンティティに同じ名前が使用される可能性がある場合に予期しない動作が発生する可能性があります。

手動で制御するには、実行時にそのsetAddresses()プロパティを変更するか、異なる注文の異なるCachingConnectionFactoryインスタンスを使用することをお勧めします。

+0

ありがとうございましたArtem、私はインターフェイスConnectionListenerを実装して、私はonCreateメソッドでURLを取得します。 – jandres

関連する問題