服务器集群的session管理

来源:互联网 发布:淘宝免费代销货源 编辑:程序博客网 时间:2024/05/17 02:11

单机服务器情况下,session可以由Web容器(tomcat,jboss...)管理。

在使用服务器集群的情况下,session管理主要有以下集中方案:


1. session复制

在集群的每台服务器之间,相互复制session数据,保证每台服务器都拥有这个用户相同的session数据,即使其中某一台服务器宕机,也可以取的相同的session信息。

取的时候,也是可以直接本机获取,速度也比较快。缺点是,如果集群中有很多台服务器,那互相拷贝session信息会造成集群服务器之间大量的通信,并且如果用户量大,也会造成session信息总体偏大,占用大量内存空间,甚至会出现服务器内存不够用的情况。因此session方案只适合小网站,很少几台服务器集群的情况。


2. session绑定

session绑定可以利用负载均衡的源地址hash算法实现,负载均衡器总是将来源于同一个Ip的请求分发到同一台服务器上,即将session绑定到某台特定的服务器。缺点:如果这台绑定session的服务器宕机,那就会丢失session信息。


3. 利用cookie记录session

将session记录在客户端,每次请求服务器的时候,将session放在请求中发送给服务器,服务器处理完请求后,再将修改过的session相应给客户端。

缺点: cookie容量有限,能记录的信息不多;每次请求都传输cookie影响性能;如果用户客户端关闭cookie功能,则影响访问正常进行。


4. session服务器

利用独立部署的session服务器集群,统一管理session,应用服务器每次读写session时,都访问session服务器。一般有分布式缓存,数据库上包装实现,使其符合session的存储和访问要求。





0 0
原创粉丝点击