第3章 mod_cluster コネクター
3.1. 概要 リンクのコピーリンクがクリップボードにコピーされました!
mod_cluster コネクターは縮小された設定の、JBoss EAP および JBoss Web Server Tomcat のインテリジェントな負荷分散ソリューションで、JBoss mod_cluster コミュニティープロジェクトによって開発された技術に基づいています。
mod_cluster モジュールは、Apache HTTP Server をプロキシーサーバーとして使用して JBoss EAP および JBoss Web Server Tomcat ワーカーノードに HTTP 要求を負荷分散します。
3.1.1. 主な特長 リンクのコピーリンクがクリップボードにコピーされました!
他の mod_jk コネクターと比べて mod_cluster コネクターには複数の利点があります。
- mod_cluster Management Protocol (MCMP) は、Tomcat サーバーと mod_cluster が有効な Apache HTTP Server との間の追加的な接続です。HTTP メソッドのカスタムセットを使用してサーバー側の負荷計算およびライフサイクルイベントを Apache HTTP Server サーバーに返信するために Tomcat サーバーによって使用されます。
- mod_cluster がある Apache HTTP Server を動的に設定すると、手動設定を行わずに mod_cluster リスナーのある Tomcat サーバーが負荷分散に参加できます。
- Tomcat サーバーは、Apache HTTP Server に依存せず、負荷計算を実行します。これにより、負荷分散メトリックが他のコネクターよりも正確になります。
- mod_cluster コネクターにより、アプリケーションライフサイクルを細かく制御できるようになります。各 Tomcat サーバーは Web アプリケーションコンテキストライフサイクルイベントを Apache HTTP Server サーバーに転送し、指定コンテキストのルーティングリクエストを開始または停止するよう通知します。これにより、リソースを使用できないことが原因の HTTP エラーがエンドユーザーに表示されないようになります。
- AJP、HTTP、または HTTPS トランスポートを使用できます。
3.1.2. コンポーネント リンクのコピーリンクがクリップボードにコピーされました!
プロキシーサーバーでは、mod_cluster は 4 つの Apache モジュールで構成されます。
| コンポーネント | 説明 |
|---|---|
|
| Shared Memory Manager モジュールは、リアルタイムのワーカーノード情報を複数の Apache HTTP Server プロセスと共有します。 |
|
| Cluster Manager モジュールは、ノードの登録、ノードの負荷データ、ノードアプリケーションのライフサイクルイベントなど、ワーカーノードからメッセージを受信および確認します。 |
|
| Proxy Balancer モジュールは、クラスターノードへの要求ルーティングを処理します。Proxy Balancer は、クラスターのアプリケーションの場所、各クラスターノードの現在の状態、およびセッション ID (リクエストが確立されたセッションの一部である場合) に基づいて適切な宛先ノードを選択します。 |
|
| Proxy Advertisement Module は、UDP マルチキャストメッセージを介してプロキシーサーバーの存在をブロードキャストします。サーバーのアドバタイズメッセージには、負荷分散クラスターに参加するワーカーノードからの応答をプロキシーサーバーがリッスンしている IP アドレスとポート番号が含まれます。 |
利用可能なモジュール (user-configurable パラメーターなど) の詳細は、Apache HTTP Server Modules appendix を参照してください。
3.1.3. 文字の制限 リンクのコピーリンクがクリップボードにコピーされました!
mod_cluster は共有メモリーを使用してノードの記述を維持します。共有メモリーは Apache HTTP Server の起動時に作成され、各項目の構造は固定されます。プロキシーサーバーおよびワーカーノードのプロパティーを定義する際に、以下の文字制限に従うようにしてください。
-
エイリアスの最大長: 100 文字 (エイリアスはそれぞれの仮想ホストのネットワーク名に対応します。名前は
Host要素で定義されます)。 -
コンテキストの最大長: 40 文字 (例:
myapp.warが/myappにデプロイされている場合/myappはコンテキストに含まれます)。 -
バランサー名の最大長: 40 文字 (
mbeanのバランサープロパティー) -
JVMRoute文字列の最大長: 80 文字 (<Engine>要素のJVMRoute)。 -
ドメイン名の最大長 - 20 文字 (
mbeanのドメインプロパティー)。 -
ノードのホスト名の最大長: 64 文字 (
<Connector>要素内のホスト名アドレス)。 -
ノードのポートの最大長: 7 文字 (
<Connector>要素の port プロパティー、8009は 4 文字)。 -
ノードのスキームの最大長: 6 文字 (コネクターのプロトコル、可能な値は
http、https、ajp)。 -
クッキー名の最大長: 30 文字 (セッション ID のヘッダークッキー名。デフォルト値:
org.apache.catalina.Globals.SESSION_COOKIE_NAMEからのJSESSIONID)。 -
パス名の最大長: 30 文字 (セッション ID のパラメーター名。デフォルト値:
org.apache.catalina.Globals.SESSION_PARAMETER_NAMEからのJSESSIONID)。 -
セッション ID の最大長: 120 文字 (セッション ID は以下のようになります
BE81FAA969BF64C8EC2B6600457EAAAA.node01)。