【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比较##求面经#
全部评论

相关推荐

点赞 23 评论
分享
牛客网
牛客企业服务