我在使用apache作爲前端負載均衡器的ubuntu服務器上測試Tomcat Clustering
爲session replication
。從我的測試經驗來看,我認爲最好不要使用tomcat集羣,而是將每個節點作爲獨立運行,不知道沒有任何會話複製,因爲我覺得它很慢,需要很多時間來啓動tomcat服務並消耗更多的內存。並且FarmDeployer
在部署中始終不可靠,整個配置應該放在<Host></Host>
元素中,以便農場部署者工作,並且還要爲每個虛擬主機以及一個巨大的server.xml文件。下面是來自我使用的節點之一的集羣配置的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集羣是否適合在生產環境中使用,或者是否有任何備用方式進行會話複製?或者我錯過了上述配置中可以很好調整的任何內容?
歡迎任何想法。謝謝!爲Tomcat
'memcached'是一個獨立的產品,就像tomcat的附加組件? – user465465 2012-02-01 06:58:11
你可以閱讀這裏的memcached:http://memcached.org/about 您在一個或多個機器上安裝一個memcached服務器,客戶端可以設置/獲取/刪除緩存項。 memcached-session-manager(作爲tomcat會話管理器)則是一個客戶端在/從memcached中存儲/檢索會話。 – MartinGrotzke 2012-02-02 12:34:01
在tomcat集羣上memcached是否高效? – user12458 2014-12-09 14:50:30