【HTTP】分布式session的管理

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

Why

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

1.Session Replication

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

图片说明

2.Session Sticky 方式管理

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

3. 缓存集中式管理

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

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

热门文章

图片说明

#春招##内推##笔试题目##实习##offer比较##求面经#
全部评论

相关推荐

05-07 13:29
已编辑
门头沟学院 Java
北斗导航Compass低仿版:能不能先搞清楚优先级啊,怎么可能是项目问题,项目很重要吗?又没学历 又没实习大厂凭啥约面?那玩具项目 没应用在真实生产环境下的 就算做上天又有什么用?早点找个小公司实习 拿小公司实习去投大厂实习,这才是你现在该做的
投递美团等公司10个岗位 简历被挂麻了,求建议
点赞 评论 收藏
分享
04-18 15:58
已编辑
门头沟学院 设计
kaoyu:这一看就不是计算机的,怎么还有个排斥洗碗?
点赞 评论 收藏
分享
评论
点赞
23
分享

创作者周榜

更多
牛客网
牛客企业服务