如何保证Session的一致性
单机架构不存在session不一致的问题,反向代理架构就出现不一致的问题
如何保证session一致性?
(1)session同步法:多台web-server相互同步数据;
存在的问题:网络带宽消耗大,集群规模受限(内存占用随节点数线性增长)
(2)客户端存储法:一个用户只存储自己的数据;
实现方式:
- HTTP Header:
httpCopy Code
适用于API请求37。
Authorization: Bearer <JWT令牌>
- Cookie:
通过Set-Cookie
写入浏览器,后续请求自动携带存在的问题:
- 需权衡数据安全性与传输效率(如敏感数据可仅存用户ID,其他信息查库获取)
(3)反向代理hash一致性:四层hash和七层hash都可以做,保证一个用户的请求落在一台web-server上;
(4)后端统一存储法:web-server重启和扩容,session也不会丢失;