博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
sso单点登录系统(解决session共享)
阅读量:5158 次
发布时间:2019-06-13

本文共 787 字,大约阅读时间需要 2 分钟。

场景:假设一个用户将自己的登录信息提交到后台,如果session保存的信息分布在多台机器上,并且不共享,那么可能导致用户的登录信息出现短暂的丢失,为什么这样讲,因为用户访问服务器中间还要经过负载均衡服务器,负载均衡采用轮询的方式转发用户的登录请求。有可能访问到的那台机器用户恰好没有往服务器提交信息,导致信息出现短暂性丢失。这时一般有两种解决方案。

一.配置session集群(也就是tomcat服务器集群),让多台服务器共享同一个session并且同步,那么用户的登录信息就不会丢失。但是随着用户数量的增加,集群的性能就会下降

建议在5台一下的场景使用。

二.搭建单点登录系统,向外提供服务接口,将session数据存储在redis中,redis中的key可以设置信息的过期时间,而且访问速度快,效率高。模拟用户登录与查询订单的流程。

1.用户向sso系统发起登录请求 2.系统跳转登录界面 3action接收用户的参数 4后台根据用户名从数据库中查密码 5.如果密码正确,生成一个token(令牌),并将用户的信息保存到redis中,设置过期时间 6返回登录成功的界面 ,将token写入cookie 7用户访问订单系统 ,请求查询订单 8从cookie中取token查询,调用sso单点登录系统的服务,根据token查询用户的信息 9 接收token,从redis中查询token的值是否存在或者是否过期,如果有效,直接返回订单信息。

sso单点登录系统是解决企业业务整合的比较流行的方案之一,用户可以一次登录,可以访问多个不停的业务系统而不需要重新登录。而且可以通过redis解决分布式环境下session共享的难题。仅代表个人的一些见解,希望有需要的一起学习共同进步!

转载于:https://www.cnblogs.com/-flq/p/9282596.html

你可能感兴趣的文章
node知识积累
查看>>
HDU 1710 Binary Tree Traversals
查看>>
mina 字节数组编解码器的写法 II
查看>>
理解MapReduce计算构架
查看>>
学习什么语言的问题,其实,不是一个问题......
查看>>
MongoRepository动态代理及jpa方法解析源码分析
查看>>
bzoj2015 [Usaco2010 Feb]Chocolate Giving
查看>>
bzoj1651[Usaco2006 Feb]Stall Reservations 专用牛棚
查看>>
spring中InitializingBean接口使用理解
查看>>
团队合作之Scrum
查看>>
关于开发和测试沟通的一些问题
查看>>
Redis教程_2
查看>>
通过java给qq邮箱发送信息
查看>>
style、currentStyle、getComputedStyle区别介绍
查看>>
Python List(列表)使用示例
查看>>
poj-3069-Saruman's Army
查看>>
webstorm的破解
查看>>
C#中创建线程,创建带参数的线程
查看>>
让 VS2010 支持 HTML5 和 CSS3.0
查看>>
eclipse 中过滤空包,目录树中不显示。
查看>>