分布式 session

本文深入探讨分布式环境下Session的三种管理方式:Session复制、粘性Session和缓存集中式管理,对比各自优缺点,并讨论session一致性的多种解决方案。

分布式session的实现方式:

一、Session Replication 方式管理 (即session复制)

        简介:将一台机器上的Session数据广播复制到集群中其余机器上

        使用场景:机器较少,网络流量较小

        优点:实现简单、配置较少、当网络中有机器Down掉时不影响用户访问

        缺点:广播式复制到其余机器有一定廷时,带来一定网络开销

二、Session Sticky 方式管理

        简介:即粘性Session、当用户访问集群中某台机器后,强制指定后续所有请求均落到此机器上

       使用场景:机器数适中、对稳定性要求不是非常苛刻

       优点:实现简单、配置方便、没有额外网络开销

        缺点:网络中有机器Down掉时、用户Session会丢失、容易造成单点故障

三、缓存集中式管理

       简介:将Session存入分布式缓存集群中的某台机器上,当用户访问不同节点时先从缓存中拿Session信息

       使用场景:集群中机器数多、网络环境复杂

       优点:可靠性好

       缺点:实现复杂、稳定性依赖于缓存的稳定性、Session信息放入缓存时要有合理的策略写入

session的一致性:

  只要用户不重启浏览器,每次http短连接请求,理论上服务端都能定位到session,保持会话。

保持一致性方案: 

  1、session复制法:多个web-server之间相互同步session,这样每个web-server之间都包含全部的session

  

  2、客户端存储法:服务端存储所有用户的session,内存占用较大,可以将session存储到浏览器cookie中,每个端只要存储一个用户的数据了

  

  3、反向代理hash一致性:四层hash和七层hash都可以做,保证一个用户的请求落在一台web-server上(不建议用,session属于状态,不宜放在web层)

  4、后端统一存储:将session存储在web-server后端的存储层,数据库或者缓存

  

转载于:https://www.cnblogs.com/liuqing576598117/p/10314324.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值