Cosminexus V9 アプリケーションサーバ 機能解説 基本・開発編(Webコンテナ)
振り分け先となるワーカのリストをロードバランサに定義することで,ラウンドロビン方式でワーカにリクエストを振り分けます。
振り分け先となる各ワーカに負荷分散値を設定して,リクエスト振り分けの比率を定義すると,ホストごとの負荷の割合を調整できます。リダイレクタは,この比率でHTTPリクエスト単位にラウンドロビンでリクエストを振り分けるので,比率が高いワーカほど転送されるリクエストの割合が多くなります。ただし,同じセッションに属するHTTPリクエストは前回と同じワーカに振り分けられます。
ラウンドロビン方式によるリクエスト振り分けは,次の手順で設定します。
条件 | 意味 |
---|---|
MaxSpareServers ≧ MaxClients | サーバプロセスはMaxClientsまで増加し,処理終了後も常駐します。 |
MaxRequestsPerChild 10000 | HTTPリクエストを10,000回処理後,リフレッシュのためにサーバプロセスを終了させます(10,000は推奨値)。振り分け先のJ2EEサーバ数に対して十分に大きな値を指定します。 |
StartServers = MaxClients | 最初に全サーバプロセスを起動しておく場合に指定します。 |
StartServers 256 MaxClients 256 MaxSpareServers 256 MaxRequestsPerChild 10000 |
workers.propertiesおよびmod_jk.confでの設定については,Smart Composerを使用する場合と同様です。「4.4.4(2) workers.propertiesおよびmod_jk.confでの設定」を参照してください。
ラウンドロビン方式によるリクエスト振り分けの例を次の図に示します。
図4-9 ラウンドロビン方式によるリクエスト振り分けの例
この例では,「/examples」以下のリクエストがホストA,ホストBに同じ比率で振り分けます。ホストAのワーカ名は「worker1」,ホストBのワーカ名は「worker2」です。
workers.propertiesの例を次に示します。ここでは,ロードバランサとワーカを定義します。リクエストを同じ比率で振り分けるので,「worker1」と「worker2」の負荷分散値はどちらも「1」を指定します。
worker.list=loadbalancer1 worker.loadbalancer1.balanced_workers=worker1,worker2 worker.loadbalancer1.type=lb worker.worker1.port=8007 worker.worker1.host=hostA worker.worker1.type=ajp13 worker.worker1.cachesize=64 worker.worker1.lbfactor=1 worker.worker2.port=8007 worker.worker2.host=hostB worker.worker2.type=ajp13 worker.worker2.cachesize=64 worker.worker2.lbfactor=1
worker.list=loadbalancer1 worker.loadbalancer1.balanced_workers=worker1,worker2 worker.loadbalancer1.type=lb worker.worker1.port=8007 worker.worker1.host=hostA worker.worker1.type=ajp13 worker.worker1.lbfactor=1 worker.worker2.port=8007 worker.worker2.host=hostB worker.worker2.type=ajp13 worker.worker2.lbfactor=1
mod_jk.confおよびuriworkermap.propertiesの例を次に示します。ここでは,ロードバランサ名「loadbalancer1」を指定します。
JkMount /examples/* loadbalancer1
/examples/*=loadbalancer1
All Rights Reserved. Copyright (C) 2012, 2015, Hitachi, Ltd.