分布式下的session和token

session是有状态的,一般存放于内存,数据库或文件中。

当服务器采用分布式或者集群的时候session就会面临负载均衡的问题。

解决session的负载均衡:负载均衡多服务器的时候无法确定当前用户是否登陆,因为多服务器是不共享session的。其中的一种方法是将session存放于一个服务器中,根据请求源的 IP 的散列(hash)来选择要转发的服务器,这种方式可以一定程度上保证特定用户能连接到相同的服务器。。如果你的应用需要处理状态而要求用户能连接到和之前相同的服务器,可以考虑采取这种方式。

但这种方式还是没有彻底的解决负载均衡问题,如果后端有服务器宕机,那么这台服务器的Session丢失,被分配到这台服务请求的用户还是需要重新登录。

而token是无状态的。token字符串中保存了所有的用户信息。

客户端登陆传递信息给服务端,服务端收到后把用户信息加密(token)传给客户端,

客户端将token存放于localStroage等容器中。客户端每次访问都传递token,服务端解密token,就知道这个用户是谁了.

jwt跨域认证方案

jwt就是一个加密的字符串,作为验证信息在计算机之间传递。jwt是服务器生成的,通过请求传递给客户端,客户端可以任意方式存放,所以服务器就不需要存放jwt信息,这样就避免了当用户基数大,session对内存消耗。也加快了认证速度。

负载均衡参考:https://blog.51cto.com/zhibeiwang/1965018

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值