Session一致性架构设计

保证session一致性的架构设计常见方法:

session同步法

多台web-server相互同步数据

优点:
	web-server支持的功能,应用程序不需要修改代码
不足:
	session的同步需要数据传输,占内网带宽,有时延
	所有web-server都包含所有session数据,数据量受内存限制,无法水平扩展
	有更多web-server时要歇菜

客户端存储法

一个用户只存储自己的数据
优点:服务端不需要存储
缺点:
	每次http请求都携带session,占外网带宽
	数据存储在端上,并在网络传输,存在泄漏、篡改、窃取等安全隐患
	session存储的数据大小受cookie限制

反向代理hash一致性

方案1:四层代理hash
	反向代理层使用用户ip来做hash,以保证同一个ip的请求落在同一个web-server上
方案2:七层代理hash
	优点:
	只需要改nginx配置,不需要修改应用代码
	负载均衡,只要hash属性是均匀的,多台web-server的负载是均衡的
	可以支持web-server水平扩展(session同步法是不行的,受内存限制)
	四层hash和七层hash都可以做,保证一个用户的请求落在一台web-server上
	不足:
	如果web-server重启,一部分session会丢失,产生业务影响,例如部分用户重新登录
	如果web-server水平扩展,rehash后session重新分布,也会有一部分用户路由不到正确的session

后端统一存储

优点:
没有安全隐患
可以水平扩展,数据库/缓存水平切分即可
web-server重启或者扩容都不会有session丢失

不足:
不足:增加了一次网络调用,并且需要修改应用代码

#总结

保证session一致性的架构设计常见方法:
session同步法:多台web-server相互同步数据
客户端存储法:一个用户只存储自己的数据
反向代理hash一致性:四层hash和七层hash都可以做,保证一个用户的请求落在一台web-server上
后端统一存储:web-server重启和扩容,session也不会丢失

原文链接:
https://mp.weixin.qq.com/s?__biz=MjM5ODYxMDA5OQ==&mid=2651960128&idx=1&sn=8e0e409b10ab9db549432af461385314&chksm=bd2d069c8a5a8f8ab5cdee602d4062bbdbb25da290668515d36682afa854e374d2a5ff02004b&scene=0&key=5fa6b94c08301a0b541279c16cfe4b1b04ebf01704642e6d56542bae8775b34a391497040fb472470fe7197b3a7d341866c139c4d45d0c4e25bb2519a8c25859de8b2dbb5c11920b3d46c3a5f59768e2&ascene=0&uin=Nzc0NjYzMTIw&devicetype=iMac+MacBookPro11%2C1+OSX+OSX+10.10.5+build(14F2315)&version=12020610&nettype=WIFI&fontScale=100&pass_ticket=4QLBTWoWt%2BxhMwMxxpvCJdlYlWmQ%2F%2BDDeL3D6BqrbcnlwdDXwcTjQr%2F4rRQ1%2Fa%2Fu

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值