JK2 ロードバランシングの設定
 

負荷分散

JK2を利用すると、複数のTomcatホストに対してリクエストを割り振ることで、 ロードバランシングを手軽に実装することが可能になります(右図)。 この形で気になるのがセッショントラッキング(セッション情報の追跡)がどうなるのかですが、 JK2はそれもちゃんと考慮してくれています。


workers2.propertiesファイルでは2つのチャンネルを定義しています。 そしてそれらを同一のgroupとして定義します。 ここでもデフォルト値lbを使っています。 新たなグループを定義したい場合は、[lb:グループ名]というように、 lbワーカを定義して下さい。 lb_factor[注]というのは負荷係数を意味します。 例の場合は、yoshino:hikaru が 2:1 の割合になるようリクエストを振り分けます。 定義した値と逆になることに注意して下さい。

気になるセッショントラッキングですが、これにはtomcatId属性が使われます。 ここで定義した値と同じものを、それぞれのホストにあるserver.xmlの<Engine>要素の jvmRoute属性に設定します。 こうすることでセッションIDの末尾に「.yoshino」という文字列が付加され、 それをキーにしてリクエストごとにセッションの追跡が行われます。

ロードバランシング
workers2.properties
# ${APACHE2_HOME}/conf/workers2.properties
# ロードバランシングの設定例

# ログファイルの設定
[logger.file:0]
level=ERROR
file=${serverRoot}/logs/jk2.log

# ロードバランスグループ
[lb:lb]

# ホスト佳乃
[channel.socket:yoshino:8009]
info=Server Yoshino
host=yoshino.ytp.ne.jp
tomcatId=yoshino
lb_factor=1
## port=8009
## group=lb

# ホストひかる
[channel.socket:hikaru:8009]
info=Server Hikaru
host=hikaru.ytp.ne.jp
tomcatId=hikaru
lb_factor=2
## port=8009
## group=lb

# lbワーカグループで使うコンテキスト
[uri:/examples/*]
info=Map the Tomcat examples
## group=lb

# ステータス監視ワーカの設定
[status:]
[uri:/jkstatus/*]
group=status:

# 共有メモリ
[shm:]
# 使わない
disabled=1
server.xml
★ホスト佳乃
<Engine name="Standalone" defaultHost="localhost"
    jvmRoute="yoshino">

★ホストひかる
<Engine name="Standalone" defaultHost="localhost"
    jvmRoute="hikaru">


[注]Jakartaサイトにある JK2マニュアル の原文ではlbfactorとなっていますがこれは誤りで、実際にはlb_factorです。



Copyright © 2002-2016, Your Technology Partner. All rights reserved.