Tomcat集群,负载均衡,Session共享咋解决

负载均衡会话处理主要方式:粘滞session,session共享和不用session。0. 粘滞session不考虑了。1. session共享tomcat本身自带session复制功能,开启server.xml中的`cluster`节点,做相应的配置即可。参见。tomcat本身的session复制功能并不好用,官方文档也说方式只适合小集群:This works great for smaller cluster but we don\u0026#39;t recommend it for larger clusters(a lot of Tomcat nodes).于是乎大家就"自己动手,丰衣足食"了,自己包装session,并使用第三方存储(例如memcached)来存储session,从而实现session共享,例如。但由于memcached的缓存剔除机制,使用memcached存储session是不靠谱的,参见。之前使用(即memcached+bdb)可以应对这个问题。2. 不使用sessionHTTP本身就是无状态的,应用服务器为了跟踪用户状态而强行加入了session。服务器为了保存用户状态就需要做额外的工作。于是乎,Token-based的身份校验因其伸缩性而广受欢迎。在用户登录后,服务器返回一个token给用户,用户后续的请求都需要附带此token,服务器会校验该token来判断用户身份,进而完成具体业务(这里掠过不谈token的安全防护问题)。: Apache Tomcat 8 (8.0.26): magro/memcached-session-manager · GitHub: http://bearmountain.io/why-you-should-not-store-your-sessions-in-memcached: MemcacheDB: A distributed key-value storage system designed for persistent
■网友
你要有一个独立的系统来存Session,比如用一个redis集群,或者看看淘宝开源不要使用tomcat的http session,用redis来存然后tomcat前放一个F5,或者别的,比如华为他们家的,来做负载均衡。如果流量很大的话,看下分布式网络设计,百度吧,很多经典,不多说了
■网友
1、可以使用 Tomcat 本身的会话复制功能,按配置配一下就可以了,这样会话会在各个 Tomcat 进程之间复制。2、使用独立的缓存服务器来放会话,然后改写创建会话和往会话里面写数据的方法,改成往会话服务器 Get、Put。
■网友
跟nginx,jboss或者Apache配合使用tomcat。tomcat本身并发性能不是太好


    推荐阅读