面试题之——Session共享的方式

面试题之——Session共享的方式

提问方式:如果你负责一个高流量的网站,需要确保用户在负载均衡环境下Session不丢失,你会怎么做?
假如用户在其中一个节点登录了网站,在这个网站存储了Session数据,但是由于访问压力,下一次用户通过了另一个节点访问网站,又需要重新登录记录session,非常影响用户体验。

解决方式一:粘滞会话

粘滞会话,是在一段时间内通过将同一个用户的请求始终路由到同一台服务器来保持会话状态,确保连续的用户体验。

解决方式二:会话复制

会话复制是一种在服务器集群中同步会话状态的机制,确保用户会话数据在所有节点间一致,允许用户请求在任何节点上得到正确处理。

解决方式三:集中式存储Session

将session数据存储在数据库中,这样可以实现多台服务器之间的共享。但是可能导致资源占用高、性能瓶颈,并在分布式环境中增加管理复杂性和扩展性限制。

解决方式四:基于Token认证(JWT)***

JWT通常由三部分组成:

  1. 头部(Header)通常由两部分组成:令牌的类型(即JWT)和所使用的签名算法,例如HMAC SHA256或RSA。
  2. 负载(Payload)存储有关实体(通常是用户)和其他数据的信息。
  3. 签名(Signature)验证令牌的发送者是否为其声称的发送者,并且令牌在传输过程中没有被篡改。
  • JWT作为一种无状态的令牌,可以轻易地跨服务传递,不需要服务器间的任何额外协调。这意味着只要客户端持有有效的JWT,它就可以在多个服务之间进行身份验证,无需依赖于特定的服务器来维护会话状态。

  • JWT存储在localstorage中,前端每次向服务器发送请求通过请求头传递token供后端验证和解析。

  • 5
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值