1. session复制
Session复制是早期企业应用系统使用较多的一直服务器集群session管理机制。应用服务器开启Web容器Session复制功能,在集群中的几台服务器之间同步session对象,使得每台服务器上都保存所有用户的Session信息,这样任何一台机器宕机都不会导致Session数据的丢失,而服务器使用session时,也只需要在本机获取即可。
这种方案简单,从本机读取Session信息的速度也很快,但是只能使用集群规模比较小的情况下。当集群规模较大时,集群服务器间需要大量的通信进行session复制,占用大量服务器和网络资源,系统不堪负担。
由于所有的Session信息都在每台服务器上备份,在大量用户访问的情况下,会出现Session不够使用的情况。
2. Session绑定
Session绑定可以利用负载均衡源地址Hash算法实现,负载均衡服务器总是将来源于同一IP的请求分发到同一台服务器上(也可以根据Cookie信息将同一个用户请求总是分发到同一台服务器上,当然这时负载均衡服务器必须工作在HTTP协议层上)
session绑定方案不符合对系统高可用的需求,因为服务器宕机以后,session将不复存在。
3.利用Cookie记录Session
每次客户端请求服务器时,将Session放在请求中发送给服务器,服务器处理完成请求后再将修改过的Session 响应给客户端。
利用Cookie记录Session也有一些缺点,受Cookie大小的限制,记录有限;每次请求需要传输Cookie,影响性能;用户关闭Cookie,访问将不正常。
4.Session服务器
利用Session服务器(集群)统一管理Session,应用服务器每次读写Session的时,都访问Session服务器。