第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 では、スレーブブローカーのトランスポートコネクターは、ブローカーがアクティブになるまでアクティブになりませんでした。