【HTTP】分布式session的管理

 Pala   2018-10-11 14:10   22 人阅读  0 条评论

不知不觉HTTP已经更新了好多期了,之前更新的主要内容其实就是《图解HTTP》的。一般面试会问:Cookie和session的区别,如果你较为了解,那么进一步的,面试的时候我会问你分布式session的管理,有哪些常用的方法,这里同样也是做一个总结。

问题引入

每个问题,我们都希望了解它产生的背景。而session为啥不能放在单机上面?在当前企业的分布式和微服务架构下,我们在S1这台机子登录了,由于http是无状态的,那么下一次请求的时候如果请求到S2这台机子,如果不做分布式的session管理就验证不通过了。

实现方案

1.Session Replication

方案原理:将一台机器上的Session数据广播复制到集群中其余机器上
使用场景:机器较少,网络流量较小
优点:实现简单、配置较少、当网络中有机器Down掉时不影响用户访问
缺点:广播式复制到其余机器有一定廷时,带来一定网络开销

112.png

Session Replication

2.Session Sticky 方式管理

方案原理:即粘性Session、当用户访问集群中某台机器后,强制指定后续所有请求均落到此机器上
使用场景:机器数适中、对稳定性要求不是非常苛刻
优点:实现简单、配置方便、没有额外网络开销
缺点:网络中有机器Down掉时、用户Session会丢失、容易造成单点故障

113.png

Session Sticky

如果S1宕机就GG了.

3. 缓存集中式管理

方案原理:将Session存入分布式缓存集群中的某台机器上,当用户访问不同节点时先从缓存中拿Session信息
使用场景:集群中机器数多、网络环境复杂
优点:可靠性好
缺点:实现复杂、稳定性依赖于缓存的稳定性、Session信息放入缓存时要有合理的策略写入

114.png

集中式管理

到这里如果你聊到redis我们就可以把话题切到redis上面了,之后我们开系列慢慢讲。
第三种方式是现在几乎所有网站的实现方式。一来安全,二来不会导致单点故障。


本文地址:http://chenxm.cc/post/730.html
版权声明:本文为原创文章,版权归 Pala 所有,欢迎分享本文,转载请保留出处!

发表评论


表情

还没有留言,还不快点抢沙发?