第30章 高可用性

高可用性とは、1 つまたは複数のサーバーで障害が発生した後もシステムが機能を継続できることです。

高可用性の一部がフェイルオーバーです。これは、サーバーで障害が発生した場合に、クライアントアプリケーションが動作を継続できるように、クライアント接続をサーバー間で移行する機能です。

注記

永続メッセージデータのみが、フェイルオーバー後も存続します。フェイルオーバー後、非永続メッセージデータは使用できなくなります。

30.1. ライブ/バックアップのペア

JBoss EAP 7 メッセージングにより、各ライブサーバーがバックアップを持つライブ/バックアップペアとしてサーバーをリンクできます。ライブサーバーはクライアントからメッセージを受信し、バックアップサーバーはフェイルオーバーが発生するまで機能しません。バックアップサーバーは 1 つのライブサーバーのみが所有でき、パッシブモードで留まり、ライブサーバーの作業の引き継ぎを待ちます。

注記

ライブサーバーとバックアップサーバーの間には 1 対 1 の関係があります。ライブサーバーにはバックアップサーバーを 1 つだけ含めることができ、バックアップサーバーは 1 つのライブサーバーのみが所有できます。

ライブサーバーがクラッシュするか、正しいモードで停止した場合、現在パッシブモードのバックアップサーバーが新しいライブサーバーになります。新しいライブサーバーが、自動フェイルバックを許可するように設定されている場合は、古いライブサーバーが復旧することを検出して自動的に停止し、古いライブサーバーがメッセージの受信を再び開始できるようにします。

注記

ライブ/バックアップサーバーのペアを 1 つだけデプロイする場合は、バックアップインスタンスがメッセージをアクティブに処理していないため、ペアの前でロードバランサーを効果的に使用できません。さらに、JNDI や Undertow Web サーバーなどのサービスは、バックアップサーバーでもアクティブではありません。これらの理由により、バックアップメッセージングサーバーとして使用されている JBoss EAP のインスタンスへの JEE アプリケーションのデプロイはサポートされていません。

30.1.1. ジャーナルの同期

HA をレプリケートされたジャーナルで設定する場合は、ライブサーバーとバックアップの同期に時間がかります。

同期が完了したかどうかを確認するには、CLI で以下のコマンドを実行します。

/subsystem=messaging-activemq/server=default/ha-policy=replication-master:read-attribute(name=synchronized-with-backup)

結果が true であれば、同期は完了です。

ライブサーバーを安全にシャットダウンできるかどうかを確認するには、CLI で以下のコマンドを送信します。

/subsystem=messaging-activemq/server=default/ha-policy=replication-slave:read-attribute(name=synchronized-with-live)

結果が true であれば、ライブサーバーをシャットダウンしても安全です。