第19章 HTTP クラスタリングおよび負荷分散
19.1. はじめに
19.1.1. 高可用性および負荷分散クラスター
- アプリケーションサーバーのインスタンス
- 内部 JBoss Web サーバー、Apache HTTP サーバー、Microsoft IIS、または Oracle iPlanet Web Server と併用される Web アプリケーション
- ステートフル、ステートレス、およびエンティティー Enterprise JavaBean (EJB)
- シングルサインオン (SSO) メカニズム
- 分散キャッシュ
- HTTP セッション
- JMS サービスおよびメッセージ駆動型 Bean (MDB)
jgroups
と modcluster
の 2 つのサブシステムによってクラスタリングが使用できるようになります。ha
および full-ha
プロファイルではこれらのシステムが有効になっています。JBoss EAP 6 では、これらのサービスは必要に応じて起動およびシャットダウンしますが、distributable
として設定されたアプリケーションがサーバー上にデプロイされた場合のみ起動します。
19.1.2. 高可用性が有益なコンポーネント
JBoss EAP 6 の複数のインスタンス (スタンドアローンサーバーとして実行) またはサーバーグループのメンバー (管理対象ドメインの一部として実行) を高可用性として設定できます。つまり、1 つのインスタンスまたはメンバーが停止したり、クラスターから消去された場合、そのワークロードはピアに移行されます。負荷分散機能を提供するようワークロードを管理することもできるため、多くの優れたリソースを持つサーバーやサーバーグループは、より多くのワークロードを担当できます。また、負荷が高い間、処理能力を追加することも可能です。
互換性のある負荷分散メカニズムの 1 つを使用して Web サーバー自体も HA 用にクラスター化できます。mod_cluster
コネクターが最も柔軟で、 JBoss EAP 6 のコンテナと密接に統合されます。他にも、Apache の mod_jk
または mod_proxy
コネクター、ISAPI および NSAPI コネクターなどがあります。
Java Enterprise Edition 6 (Java EE 6) 仕様によって、デプロイされたアプリケーションを高可用化できます。ステートレスまたはステートフルセッション EJB をクラスター化できるため、作業に関与するノードがなくなった場合に他のノードによる引き継ぎが可能です。ステートフルセッション Bean の場合は状態が保持されます。
19.1.3. HTTP コネクターの概要
コネクター | Web サーバー | サポート対象オペレーティングシステム | サポート対象プロトコル | デプロイメント状態への適合 | スティッキーセッションのサポート |
---|---|---|---|---|---|
mod_cluster | JBoss Enterprise Web Server の httpd、オペレーティングシステム (Red Hat Enterprise Linux、Hewlett-Packard HP-UX) によって提供される httpd | Red Hat Enterprise Linux、Microsoft Windows Server、Oracle Solaris、Hewlett-Packard HP-UX | HTTP、HTTPS、AJP | 可。アプリケーションのデプロイメントとアンデプロイメントを検出し、アプリケーションがそのサーバーにデプロイされたかどうかに基づいて、サーバーにクライアント要求を送信するかどうかを動的に決定します。 | ○ |
mod_jk | JBoss Enterprise Web Server の httpd、オペレーティングシステム (Red Hat Enterprise Linux、Hewlett-Packard HP-UX) によって提供される httpd | Red Hat Enterprise Linux、Microsoft Windows Server、Oracle Solaris、Hewlett-Packard HP-UX | AJP | 不可。アプリケーションの状態に関係なく、コンテナーが利用可能な限り、クライアント要求をコンテナーに送信します。 | ○ |
mod_proxy | JBoss Enterprise Web Server の httpd | Red Hat Enterprise Linux、Microsoft Windows Server、Oracle Solaris | HTTP、HTTPS、AJP | 不可。アプリケーションの状態に関係なく、コンテナーが利用可能な限り、クライアント要求をコンテナーに送信します。 | ○ |
ISAPI | Microsoft IIS | Microsoft Windows Server | AJP | 不可。アプリケーションの状態に関係なく、コンテナーが利用可能な限り、クライアント要求をコンテナーに送信します。 | ○ |
NSAPI | Oracle iPlanet Web Server | Oracle Solaris | AJP | 不可。アプリケーションの状態に関係なく、コンテナーが利用可能な限り、クライアント要求をコンテナーに送信します。 | ○ |
各 HTTP コネクターの詳細について
19.1.4. ワーカーノード
ワーカーノードは、1 つまたは複数のクライアント向け Web サーバーから要求を許可する JBoss EAP 6 サーバーで、単にノードと呼ばれることもあります。JBoss EAP 6 は Apache HTTP Server、Microsoft IIS、Oracle iPlanet Web Server などの独自の Web サーバーからの要求を許可できます。
クラスターノードはサーバーのクラスターのメンバーです。このようなクラスターは、負荷分散、高可用性、またはその両方です。負荷分散クラスターでは、中央マネージャーが状況固有の均等性の単位を使用してノード間で負荷を均等に分散します。高可用性クラスターでは、一部のノードがアクティブに処理を行い、他のノードはアクティブなノードのいずれかがクラスターから離れるまで待機します。