5.5. フェイルオーバーオプション
フェイルオーバー URI は接頭辞 failover:
で始まり、括弧内に接続 URI のコンマ区切りリストが含まれます。追加のオプションは最後に指定されます。jms.
で始まるオプションは、括弧外にある全体的なフェイルオーバー URI に適用され、その有効期間の Connection
オブジェクトに影響します。
例: フェイルオーバーオプションを含むフェイルオーバー URI
failover:(amqp://host1:5672,amqp://host2:5672)?jms.clientID=foo&failover.maxReconnectAttempts=20
括弧内の個別のブローカー詳細は、以前に定義した transport.
または amqp.
オプションを使用できます。各ホストが接続されていると、これらが適用されます。
例: 各接続トランスポートと AMQP オプションを持つフェイルオーバー URI
failover:(amqp://host1:5672?amqp.option=value,amqp://host2:5672?transport.option=value)?jms.clientID=foo
フェイルオーバーのすべての設定オプションは以下のとおりです。
- failover.initialReconnectDelay
- クライアントが最初にリモートピアへの再接続を試みるまで待機する時間 (ミリ秒単位)。デフォルトは 0 で、最初の試行がすぐに実行されます。
- failover.reconnectDelay
- 再接続試行の間隔 (ミリ秒単位)。backoff オプションが有効になっていない場合、この値は定数のままになります。デフォルトは 10 です。
- failover.maxReconnectDelay
- クライアントが再接続を試行するまで待機する時間。この値は、遅延が大きくなりすぎないようにバックオフ機能が有効な場合にのみ使用されます。デフォルトは 30 秒です。
- failover.useReconnectBackOff
- 有効にすると、設定された乗数に基づいて再接続試行の間隔が長くなります。これはデフォルトで有効になっています。
- failover.reconnectBackOffMultiplier
- 再接続遅延値を拡張するために使用される乗数。デフォルトは 2.0 です。
- failover.maxReconnectAttempts
- 接続をクライアントに失敗したと報告する前に許可される再接続試行の数。デフォルトは -1 で、無制限を意味します。
- failover.startupMaxReconnectAttempts
-
事前にリモートピアに接続されていないクライアントの場合、このオプションは、接続を失敗と報告する前に接続する試行回数を制御します。設定しなければ、
maxReconnectAttempts
の値が使用されます。 - failover.warnAfterReconnectAttempts
- 警告がログに記録されるまでの再接続試行の失敗回数。デフォルトは 10 です。
- failover.randomize
- 有効な場合、いずれかの接続を試行する前にフェイルオーバー URI のセットが無作為にシャッフルされます。これにより、クライアント接続を複数のリモートピアに均等に分散させることができます。これはデフォルトで無効にされます。
- failover.amqpOpenServerListAction
-
サーバーからの接続 "open" フレームがクライアントへのフェイルオーバーホストのリストを提供すると、フェイルオーバートランスポートがどのように動作するかを制御します。有効な値は、
REPLACE
、ADD
、またはIGNORE
です。REPLACE
を設定すると、現在のサーバーにあるサーバー以外のフェイルオーバー URI は、サーバーによって提供されるものに置き換えられます。ADD
を設定すると、サーバーによって提供される URI が重複排除を使用して、既存のフェイルオーバー URI セットに追加されます。IGNORE
を設定すると、サーバーからの更新は無視され、使用中のフェイルオーバー URI のセットに変更は行われません。デフォルトはREPLACE
です。
フェイルオーバー URI は、AMQP およびトランスポートオプションをすべてネスト化されたブローカー URI に指定する手段として、入れ子オプションの定義もサポートします。これは、非フェイルオーバーブローカー URI が前述されているのと同じ transport.
および amqp.
の URI オプションを使用して実行されますが、failover.nested.
のプレフィックスが付けられます。たとえば、接続されたすべてのブローカーに amqp.vhost
オプションに同じ値を適用するには、以下のような URI が含まれる場合があります。
例: 共有トランスポートと AMQP オプションを持つフェイルオーバー URI
failover:(amqp://host1:5672,amqp://host2:5672)?jms.clientID=foo&failover.nested.amqp.vhost=myhost