第16章 HTTP クラスタリングおよび負荷分散
16.1. はじめに
16.1.1. 高可用性および負荷分散クラスターについて
- アプリケーションサーバーのインスタンス
- Web サーバー (内部 JBoss Web サーバー、Apache HTTPD、 Microsoft IIS、 Oracle iPlanet Web Server、Apache Tomcat)
- ステートフル、ステートレス、およびエンティティー Enterprise JavaBean (EJB)
- JNDI サービス
- シングルサインオン (SSO) メカニズム
- 分散キャッシュ
- HTTP セッション
- JMS サービスおよびメッセージ駆動型 Bean (MDB)
16.1.2. 高可用性が有益なコンポーネント
JBoss Enterprise Application Server の複数のインスタンス (スタンドアローンサーバーとして実行) またはサーバーグループのメンバー (管理対象ドメインの一部として実行) を高可用性として設定できます。つまり、1 つのインスタンスまたはメンバーが停止したり、クラスターから消去された場合、そのワークロードはピアに移行されます。負荷分散機能を提供するようワークロードを管理することもできるため、多くの優れたリソースを持つサーバーやサーバーグループは、より多くのワークロードを担当できます。また、負荷が高い間、処理能力を追加することも可能です。
互換性のある負荷分散メカニズムの 1 つを使用して Web サーバー自体も HA 用にクラスター化できます。mod_cluster
コネクターが最も柔軟で、 JBoss Enterprise Application Platform のコンテナと密接に統合されます。他にも、Apache の mod_jk
または mod_proxy
コネクター、ISAPI および NSAPI コネクターなどがあります。
Java Enterprise Edition 6 (Java EE 6) 仕様によって、デプロイされたアプリケーションを高可用化できます。ステートレスまたはステートフルセッション EJB をクラスター化できるため、作業に関与するノードがなくなった場合に他のノードによる引き継ぎが可能です。ステートフルセッション Bean の場合は状態が保持されます。
16.1.3. HTTP コネクターの概要
表16.1 HTTP コネクター機能および制約
コネクター | Web サーバー | サポート対象オペレーティングシステム | サポート対象プロトコル | デプロイメント状態への適合 | スティッキーセッションのサポート |
---|---|---|---|---|---|
mod_cluster | JBoss Enterprise Web Server HTTPD、 Native HTTPD (Red Hat Enterprise Linux のみ) | Red Hat Enterprise Linux、Microsoft Windows Server、 Oracle Solaris | HTTP、HTTPS、AJP | 可。アプリケーションのデプロイメントとデプロイメント解除を検出し、アプリケーションがそのサーバーにデプロイされたかどうかに基づいて、サーバーにクライアント要求を送信するかどうかを動的に決定します。 | 可 |
mod_jk | JBoss Enterprise Web Server HTTPD、 Native HTTPD (Red Hat Enterprise Linux のみ) | Red Hat Enterprise Linux、Microsoft Windows Server、 Oracle Solaris | 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 コネクターの詳細について
16.1.4. ワーカーノード
ワーカーノードは、1 つまたは複数のクライアント向け HTTPD サーバーから要求を受け入れる JBoss Enterprise Application Platform サーバーで、単に ノード と呼ばれることもあります。JBoss Enterprise Application Platform は独自の HTTPD、JBoss Enterprise Web Server に同梱された HTTPD、Apache HTTPD、Microsoft IIS、または Oracle iPlanet Web Server (以前の Netscape Web Server) から要求を受け入れることができます。
クラスターノードはサーバーのクラスターのメンバーです。このようなクラスターは、負荷分散、高可用性、またはその両方です。負荷分散クラスターでは、中央マネージャーが状況固有の均等性の単位を使用してノード間で負荷を均等に分散します。高可用性クラスターでは、一部のノードがアクティブに処理を行い、他のノードはアクティブなノードのいずれかがクラスターから離れるまで待機します。