16.3.3. Configuring replication high availability

レプリケーション高可用性 (HA) ポリシーを使用して HA をブローカークラスターに実装できます。レプリケーションでは、永続データはライブブローカーとバックアップブローカー間で同期されます。ライブブローカーが障害に遭遇すると、メッセージデータはバックアップブローカーに同期され、失敗したライブブローカーに対して引き継ぎされます。

共有ファイルシステムがない場合は、共有ストアの代わりにレプリケーションを使用する必要があります。ただし、レプリケーションにより、ライブブローカーとそのバックアップが同時に存続するネットワークの分離が発生する可能性があります。

レプリケーションでは、ネットワークの分離のリスクを低くするために ( ただし、除外しない )、少なくとも 3 つのライブバックアップペア が必要です。3 つ以上のライブバックアップブローカーのペアを使用すると、クラスターは クォーラムの投票 を使用して 2 つのライブブローカーを持つことができます。

以下のセクションでは、クォーラムの投票の仕組みと、少なくとも 3 つのライブバックアップのペアを使用してブローカークラスターにレプリケーション HA を設定する方法を説明します。

注記

ライブおよびバックアップブローカーは、ネットワーク経由でメッセージングデータを同期する必要があるため、レプリケーションによりパフォーマンスのオーバーヘッドが追加されます。この同期プロセスでは、ジャーナル操作がブロックされますが、クライアントはブロックされません。データの同期のためにジャーナル操作がブロックできる最大時間を設定できます。

16.3.3.1. クォーラムの投票

ライブブローカーとそのバックアップでレプリケーション接続が中断された場合、クォーラム投票 と呼ばれるプロセスを設定して、ネットワーク分離 ( スプリットブレイン ) の問題を軽減することができます。ネットワーク分離中、ライブブローカーとそのバックアップを同時にアクティブにすることができます。

以下の表は、AMQ Broker が使用する 2 種類のクォーラム投票を示しています。

投票タイプ説明イニシエーター必要な設定参加者投票の結果に基づくアクション

バックアップ投票

バックアップブローカーがライブブローカーへのレプリケーション接続を失うと、バックアップブローカーはこの投票の結果に基づいて開始するかどうかを決定します。

バックアップブローカー

なし。バックアップブローカーがレプリケーションパートナーへの接続を失った際に、バックアップ評価が自動的に行われます。

ただし、これらのパラメーターにカスタムの値を指定すると、バックアップ評価のプロパティーを制御できます。

  • quorum-vote-wait
  • vote-retries
  • vote-retry-wait

クラスターの他のライブブローカー

バックアップブローカーは、クラスター内の他のライブブローカーから過半数 ( クォーラム ) 票を受信すると開始します。これは、レプリケーションパートナーが利用可能でなくなったことを示しています。

ライブ評価

ライブブローカーがレプリケーションパートナーへの接続を失った場合、ライブブローカーはこの投票に基づいて実行を継続するかどうかを決定します。

ライブブローカー

ライブ評価は、ライブブローカーがレプリケーションパートナーへの接続を失い、vote-on-replication-failuretrue に設定されている場合に発生します。アクティブになったバックアップブローカーはライブブローカーと見なされ、ライブ評価を開始できます。

クラスターの他のライブブローカー

ライブブローカーは、クラスターの他のライブブローカーから過半数を受け取ら ない 場合はシャットダウンします。これは、クラスター接続がまだアクティブであることを示します。

重要

以下は、ブローカークラスターの設定がクォーラム投票の動作にどのように影響するかについて留意すべき重要な事項になります。

  • クォーラム評価を成功させるには、クラスターのサイズで、過半数の結果が得られる必要があります。そのため、レプリケーション HA ポリシーを使用する場合、クラスターには少なくとも 3 つのライブバックアップブローカーのペアが必要です。
  • クラスターに追加するその他のライブバックアップブローカーのペア。クラスターのフォールトトレランス全体を増やすことができます。たとえば、ライブ / バックアップのペアが 3 つあるとします。完全なライブバックアップペアがなくなると、残りの 2 つのライブ / バックアップペアが、後続のクォーラムの投票で最大数に達することができません。この状況では、クラスターでさらにレプリケーションが中断されると、ライブブローカーがシャットダウンし、バックアップブローカーが起動しない可能性があります。例えば 5 組のブローカペアでクラスターを設定することで、クラスターでは少なくとも 2 つの障害が発生することができますが、それでもクォーラム投票で過半数の結果を得ることができます。
  • クラスター内のライブバックアップブローカーのペアの数を意図的に 減らす と、過半数に以前に設定されたしきい値は自動的に減らされません。この間、失われたレプリケーション接続によってトリガーされるクォーラム評価は成功せず、クラスターがネットワーク分離に対してより脆弱になります。クラスターがクォーラム票の過半数を再計算するには、まずクラスターから削除するライブバックアップのペアをシャットダウンします。次に、クラスター内の残りのライブバックアップペアを再起動します。残りのブローカーがすべて再起動すると、クラスターはクォーラム評価しきい値を再計算します。