第10章 高可用性とフェイルオーバー

クラスター設定を作成したら、ブローカーインスタンスをリンクして、高可用性 (HA) ペアを形成できます。HA ペアは、クライアント要求を処理するマスターブローカーと、クライアントと通信できなくなった場合にマスターを置き換える 1 つ以上のスレーブブローカーで設定されます。

AMQ Broker 7 では、HA のためにクラスター設定が必要です。ブローカークラスターは、一連の非 HA ブローカーまたは HA ペアのいずれかで設定できます。

AMQ Broker 7 は、次の HA ポリシーを提供します。

レプリケーション
レプリケーションは、ネットワークを介してマスターブローカーとスレーブブローカーの間でデータを同期します。レプリケーションを使用すると、フェイルバックを有効にして、障害イベント後にマスターブローカーがオンラインに戻ったときにマスターブローカーに制御を戻し、クライアントがマスターブローカーにフェールバックできるようにすることができます。また、複数のマスターブローカーが 1 つ以上のスレーブブローカーを共有する HA グループを作成し、スレーブブローカーをマスターブローカーと同じ JVM に配置することもできます。
重要

7.5 以降、以前はレプリケーション HA ポリシーで使用できたネットワーク ping は非推奨の機能です。ネットワークの ping は、ネットワークの分離の問題からブローカークラスターを保護することができません。これにより、修復不能なメッセージが失われることがあります。この機能は今後のリリースで削除されます。Red Hat では、ネットワークの ping を使用する既存の AMQ Broker デプロイメントは引き続きサポートされます。ただし、Red Hat は、新しいデプロイメントでネットワーク ping を使用することは推奨しません。高可用性のためのブローカークラスターの設定と、ネットワーク分離の問題を回避するためのガイダンスについては、高可用性の実装 を参照してください。

共有ストア

共有ストアは、マスターブローカーとスレーブブローカーがメッセージングデータを共有するための場所を提供します。レプリケーションよりも次の利点があるため、共有ストアを使用することをお勧めします。

  • パフォーマンス (共有ストアの方が高速)
  • スプリットブレインではない問題
  • クォーラムを維持するために必要なブローカーが少ない (レプリケーションには少なくとも 3 つ必要)

    レプリケーションと同様に、フェールバックを有効にして、障害イベントの後に制御をマスターブローカーに戻し、クライアントがマスターブローカーにフェールバックできるようにすることができます。マスターブローカーに複数のスレーブブローカーを設定し、スレーブブローカーを併置することができます。

HA とフェイルオーバーの詳細については、AMQ Broker の設定高可用性の実装 を参照してください。

10.1. 高可用性とフェイルオーバーの変更点

AMQ Broker 7 の高可用性は、マスターの決定方法とブローカー接続がアクティブになるタイミングに基づいて、AMQ 6 とは異なります。

AMQ Broker 7 では、マスターとスレーブのロールが固定されています。どのブローカーインスタンスがマスターであるかを指定すると、スレーブは特定の条件でのみアクティブになります。AMQ 6 では、マスターとスレーブのロールは固定されていませんでした。代わりに、HA ペアのブローカーがロックを求めて競合し、勝者がマスターになります。

AMQ Broker 7 では、HA ペアで、スレーブブローカーのアクセプターは、ブローカーが非アクティブであってもアクティブです。AMQ 6 では、スレーブブローカーのトランスポートコネクターは、ブローカーがアクティブになるまでアクティブになりませんでした。