redis实现SSO单点登录,集群,分布式锁

    使用redis实现单点登录,一般情况下都是配合cookie的.将生成的唯一的token信息存储在cookie中,当发生多服务调用时,都会在cookie中读取到该值,再去redis中查询是否有该用户信息存在.如此实现单点登陆

    一般在微服务架构中,SSO单点登陆会抽离出来作为一个单独的服务,来实现服务器集群下的 session共享问题.

    为什么要使用redis 来解决session 共享问题呢?

    1. redis 是一个纯键值类型的NSQL数据库,所有的操作都是具有原子性的.

    2. redis 可以设置key的生存时间,访问速度快速效率高.

    缺点就是: 会对代码有一定的侵入性.需要自行编码实现!!!

    下面对原有的登陆与单点登录做一下简单的比较:

    简单的单服务的登录逻辑:

    

众所周知,session属于会话,如果在将来业务需要进行壮大需要改造成多服务,那么上去解决方案完全行不通!

所以才会引进SSO单点登录的逻辑,它完美的解决了在多服务下的session共享问题,

    :但是又会带来哪些问题呢?

    1.在高并发下,很难保证生成的token的唯一性,并且有可能存在cookie存储的token信息,在redis 中查询不到,

  于是在这种情况下就需要使用分布式锁!分布式锁有很多实现方式,这里说到的则是利用redis的原子性来

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值