tomcat集群及session共享
一般来说,java web app主要用作两个领域:
1.api。api一般是无状态的,所以无需考虑session共享的问题
2.传统web应用和网站,如crm,oa,erp,b2c,bbs等。尤其bbs,b2c这样的互联网应用,单台tomcat往往无法满足高并发,所以需要做集群。如果做了集群,往往需要考虑session共享的问题,因为LB(apache/nginx)等等往往会将同一用户的请求分发到不同server
常用的servlet容器主要有tomcat(老牌的servlet容器,像apache一样经典,目前广泛使用),jetty(性能比较好的轻量级servlet容器,google几年前已经广泛使用)等,今天主要谈一谈tomcat的集群方案
方案有两类:
一.转发策略:lb设置固定策略,根据ip分发到固定的server。不推荐使用
优点:只需对lb做下相应配置,web容器无需调整
缺点:卡靠性比较差。因为集群中的部门机器可能出现宕机,对此lb可能出现无法正常转发
二.session共享:各个server共享session,从而保证用户始终可以正常访问
1.cluster方式 http://tomcat.apache.org/tomcat-6.0-doc/cluster-howto.html
优点:不改变原有session存储方式
缺点:性能一般,