フロントエンドのロードバランサとしてapacheを使用しているubuntuサーバでのテストを行いました。私のテストの経験から、Tomcatのクラスタリングを使用しない方が良いと言いますが、スタンドアロンとして各ノードを実行すると、セッションの複製がなくても互いを知りません。遅くてTomcatサービスの起動に多くの時間がかかり、メモリを消費します。また、FarmDeployer
は、常に展開時に信頼性がなく、全体の構成は、ファーム展開者が機能するために、また各仮想ホスティング、したがって巨大なserver.xmlファイルに対して<Host></Host>
要素の下に配置する必要があります。以下は、使用したノードの1つからクラスタ構成を使用したTomcat仮想ホスティングです。Tomcatのクラスタリングは、セッションレプリケーションのためだけですか?
<Host name="site1.mydomain.net" debug="0" appBase="webapps" unpackWARs="true" autoDeploy="true">
<Logger className="org.apache.catalina.logger.FileLogger"
directory="logs" prefix="virtual_log1." suffix=".log" timestamp="true"/>
<Context path="" docBase="/usr/share/tomcat/webapps/myapp" debug="0" reloadable="true"/>
<Cluster className="org.apache.catalina.ha.tcp.SimpleTcpCluster">
<Manager className="org.apache.catalina.ha.session.DeltaManager"
expireSessionsOnShutdown="false"
notifyListenersOnReplication="true"/>
<Channel className="org.apache.catalina.tribes.group.GroupChannel">
<Receiver className="org.apache.catalina.tribes.transport.nio.NioReceiver"
address="192.168.1.8"
port="4001"
selectorTimeout="100"
maxThreads="6"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.TcpFailureDetector"/>
<Interceptor className="org.apache.catalina.tribes.group.interceptors.StaticMembershipInterceptor">
<Member className="org.apache.catalina.tribes.membership.StaticMember"
port="4002"
securePort="-1"
host="192.168.1.9"
domain="staging-cluster"
uniqueId="{0,1,2,3,4,5,6,7,8,9}"/>
<!-- <Member className="org.apache.catalina.tribes.membership.StaticMember"
port="4002"
securePort="-1"
host="192.168.1.9"
domain="staging-cluster"
uniqueId="{0,1,2,3,4,5,6,7,8,9}"/> -->
</Interceptor>
</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.JvmRouteSessionIDBinderListener"/>
<ClusterListener className="org.apache.catalina.ha.session.ClusterSessionListener"/>
<Deployer className="org.apache.catalina.ha.deploy.FarmWarDeployer"
tempDir="/usr/share/tomcat/temp/"
deployDir="/usr/share/tomcat/webapps/"
watchDir="/usr/share/tomcat/watch/"
watchEnabled="true"/>
</Cluster>
</Host>
Tomcatのクラスタリングは本番環境で使用するのに適しているのですか?それとも、セッション複製のための代替方法はありますか。または、上記の設定で何かが不足していて、微調整できますか?
アイデアを歓迎します。ありがとう!
「memcached」は、tomcatのアドオンのような別の製品ですか? – user465465
ここでmemcachedについて読むことができます:http://memcached.org/about memcachedサーバを1台以上のマシンにインストールし、クライアントはキャッシュ項目をSET/GET/REMOVEできます。 memcached-session-manager(tomcatセッションマネージャとして)は、memcachedに/からmemcachedにセッションを格納/取得するクライアントです。 – MartinGrotzke
memcachedはtomcatクラスタより効率的ですか? – user12458