通常來講,java web app主要用做兩個領域:html
1.api。api通常是無狀態的,因此無需考慮session共享的問題java
2.傳統web應用和網站,如crm,oa,erp,b2c,bbs等。尤爲bbs,b2c這樣的互聯網應用,單臺tomcat每每沒法知足高併發,因此須要作集羣。若是作了集羣,每每須要考慮session共享的問題,由於LB(apache/nginx)等等每每會將同一用戶的請求分發到不一樣servernginx
經常使用的servlet容器主要有tomcat(老牌的servlet容器,像apache同樣經典,目前普遍使用),jetty(性能比較好的輕量級servlet容器,google幾年前已經普遍使用)等,今天主要談一談tomcat的集羣方案web
方案有兩類:apache
一.轉發策略:lb設置固定策略,根據ip分發到固定的server。不推薦使用api
優勢:只需對lb作下相應配置,web容器無需調整tomcat
缺點:卡靠性比較差。由於集羣中的部門機器可能出現宕機,對此lb可能出現沒法正常轉發session
二.session共享:各個server共享session,從而保證用戶始終能夠正常訪問併發
1.cluster方式 http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.htmlapp
優勢:不改變原有session存儲方式
缺點:性能通常,