D/2013-09-03 をテンプレートにして作成
検索
開始行:
** Tomcatセッションレプリケーションメモ [#z56de2f7]
> ローリングアップグレードの手段としてセッションレプリケーションを試してみます。レプリケーションができていればWARの更新時にワーカーを順番に再起動してもサービスは無停止でアップグレードできるはずです。
- Apache 2.2.25
- Tomcat 6.0.35
> ローカルに2台のTomcatを立ち上げ、1台のApacheから割り振る方法をやってみます。
*** Apacheの設定 [#of67b55f]
- httpd.conf
ProxyPass /scone/ balancer://workergroup/
<Proxy balancer://workergroup>
BalancerMember ajp://localhost:8009/scone/ ping=500ms retry=10
BalancerMember ajp://localhost:18009/scone/ ping=500ms retry=10
ProxySet lbmethod=bybusyness
</Proxy>
*** Tomcatの設定 [#u8cba4d2]
- 2台のTomcatのアプリケーションのContextに''distributable''を追加します。
<Context path="/scone" reloadable="false" distributable="true">
- server.xmlのHost要素に以下を追加しました。
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="localhost"
port="5000"
selectorTimeout="100"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
</Cluster>
> Managerで設定した''DeltaManager''はAll-to-Allのレプリケーションになるそうです。他にBackupManagerという1台に複製を送信するマネージャーがあるそうです。
> 今回はレプリケーションするTomcat2台ともローカルホストなので、Receiverで使うポートが2台で競合しないようにします。
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="localhost"
port="5001"
selectorTimeout="100"
maxThreads="6"/>
*** テスト [#m00eb945]
> Apache、Tomcat2台を立ち上げ、ブラウザで接続してみます。ワーカーを1台止めても、即座に切り替わる様子が実験できました。再び落としたワーカーを立ち上げ、別の方を止めても大丈夫。これはすごい!これならジオンはあと10年は戦える。
- [[Apache モジュール mod_proxy :http://httpd.apache.org/docs/2.2/mod/mod_proxy.html]]
----
#comment(nodate);
終了行:
** Tomcatセッションレプリケーションメモ [#z56de2f7]
> ローリングアップグレードの手段としてセッションレプリケーションを試してみます。レプリケーションができていればWARの更新時にワーカーを順番に再起動してもサービスは無停止でアップグレードできるはずです。
- Apache 2.2.25
- Tomcat 6.0.35
> ローカルに2台のTomcatを立ち上げ、1台のApacheから割り振る方法をやってみます。
*** Apacheの設定 [#of67b55f]
- httpd.conf
ProxyPass /scone/ balancer://workergroup/
<Proxy balancer://workergroup>
BalancerMember ajp://localhost:8009/scone/ ping=500ms retry=10
BalancerMember ajp://localhost:18009/scone/ ping=500ms retry=10
ProxySet lbmethod=bybusyness
</Proxy>
*** Tomcatの設定 [#u8cba4d2]
- 2台のTomcatのアプリケーションのContextに''distributable''を追加します。
<Context path="/scone" reloadable="false" distributable="true">
- server.xmlのHost要素に以下を追加しました。
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster" channelSendOptions="6">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"
mapSendOptions="6"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Membership className="org.apache.catalina.tribes.membership.McastService"
address="228.0.0.4"
port="45564"
frequency="500"
dropTime="3000"/>
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="localhost"
port="5000"
selectorTimeout="100"
maxThreads="6"/>
<Sender className="org.apache.catalina.tribes.transport.ReplicationTransmitter">
<Transport className="org.apache.catalina.tribes.transport.nio.PooledParallelSender"/>
</Sender>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.MessageDispatch15Interceptor"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.ThroughputInterceptor"/>
</Channel>
<Valve className="org.apache.catalina.ha.tcp.ReplicationValve" filter=""/>
<Valve className="org.apache.catalina.ha.session.JvmRouteBinderValve"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/tmp/war-temp/"
deployDir="/tmp/war-deploy/"
watchDir="/tmp/war-listen/"
watchEnabled="false"/>
</Cluster>
> Managerで設定した''DeltaManager''はAll-to-Allのレプリケーションになるそうです。他にBackupManagerという1台に複製を送信するマネージャーがあるそうです。
> 今回はレプリケーションするTomcat2台ともローカルホストなので、Receiverで使うポートが2台で競合しないようにします。
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="localhost"
port="5001"
selectorTimeout="100"
maxThreads="6"/>
*** テスト [#m00eb945]
> Apache、Tomcat2台を立ち上げ、ブラウザで接続してみます。ワーカーを1台止めても、即座に切り替わる様子が実験できました。再び落としたワーカーを立ち上げ、別の方を止めても大丈夫。これはすごい!これならジオンはあと10年は戦える。
- [[Apache モジュール mod_proxy :http://httpd.apache.org/docs/2.2/mod/mod_proxy.html]]
----
#comment(nodate);
ページ名:
[
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]