场景:假设一个用户将自己的登录信息提交到后台,如果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共享的难题。仅代表个人的一些见解,希望有需要的一起学习共同进步!

sso单点登录系统(解决session共享)的更多相关文章

  1. e3mall商城的归纳总结10之freemarker的使用和sso单点登录系统的简介

    敬给读者的话 本节主要讲解freemarker的使用以及sso单点登录系统,两种技术都是比较先进的技术,freemarker是一个模板,主要生成一个静态静态,能更快的响应给用户,提高用户体验. 而ss ...

  2. sso单点登录系统的压力测试

    环境:vmware centos7.4 2cpu 2核心 工具:ab压力测试工具 测试对象:sso单点登录系统 电脑:win10 4核 项目环境:flask+uwsgi+nginx(uwsgi 2进程 ...

  3. sso单点登录系统

    sso单点登录概念 1.一处登录,处处登录.会单独做一个单点登录系统,只负责颁发token和验证token,和页面登录功能. 2.通过在浏览器cookie中放入token,和在redis中对应toke ...

  4. sso单点登录系统原理与实现

    sso单点登录 1.认识并理解sso及其应用,并能根据其实现原理自行实现sso 没有使用sso单点登录的系统用户再访问同一个系统的不同模块都必须的登录 使用sso单点登录,用户只需要登录一次,并且可以 ...

  5. 统一登录中心SSO 单点登录系统的构想

    什么是单点登录?我想肯定有一部分人“望文生义”的认为单点登录就是一个用户只能在一处登录,其实这是错误的理解.单点登录指的是多个子系统只需要登录一个,其他系统不需要登录了(一个浏览器内).一个子系统退出 ...

  6. 基于cookie的SSO单点登录系统

    利用COOKIE实现单点登录功能 近期公司要求帮一个项目实现单点登录功能,在综合考量下决定采用cookie实现,大概的流程如下图所:

  7. 第04项目:淘淘商城(SpringMVC+Spring+Mybatis)【第十天】(单点登录系统实现)

    https://pan.baidu.com/s/1bptYGAb#list/path=%2F&parentPath=%2Fsharelink389619878-229862621083040 ...

  8. php sso单点登录原理阐述

    原理:就是用户登录了单点登录系统(sso)之后,就可以免登录形式进入相关系统: 实现: 点击登录跳转到SSO登录页面并带上当前应用的callback地址 登录成功后生成COOKIE并将COOKIE传给 ...

  9. CAS实现SSO单点登录

    环境 cas-server-4.1.8,cas-client-3.4.0,Java-8,Maven-3,Tomcat-7.0.72 CAS Server 安装 点此进入 CAS 下载列表,选择下载 c ...

随机推荐

  1. 初识kafka

    简介     Kafka经常用于实时流数据架构,用于提供实时分析.本篇将会简单介绍kafka以及它为什么能够广泛应用. kafka的增长是爆炸性的.2017年超过三分之一的世界五百强公司在使用kafk ...

  2. 本博客停止更新改用wordperss

    http://www.azurew.com/ 还是能有自己的博客比较爽 哈哈哈

  3. supervusor常遇到的问题

    1.unix:///tmp/supervisor.sock refused connection supervisord -c /etc/supervisord.conf  2.Unlinking s ...

  4. C# -- 使用递归列出文件夹目录及目录下的文件

    使用递归列出文件夹目录及目录的下文件 1.使用递归列出文件夹目录及目录下文件,并将文件目录结构在TreeView控件中显示出来. 新建一个WinForm应用程序,放置一个TreeView控件: 代码实 ...

  5. Xlua 不同平台链接库编译

    xlua 下载包中提供lua5.3的库文件,如果需要luajit或者自己添加删除的就需要自己进行编译. Lua53版本没那么多事,主要是LuaJIt版本折腾的比较久. 工具 Xlua使用CMake进行 ...

  6. 《Java大学教程》—第23章 Java网络编程

    本章主要关注的是Java的几个应用网络编程的场景,对于网络编程没有太多深入介绍,而Java本来也没有多少针对网络编程的特性.虽然Java有个Applet的概念,但是真用这个的开发的场景其实不多. 23 ...

  7. python 代码检测工具

    对于我这种习惯了 Java 这种编译型语言,在使用 Python 这种动态语言的时候,发现错误经常只能在执行的时候发现,总感觉有点不放心. 而且有一些错误由于隐藏的比较深,只有特定逻辑才会触发,往往导 ...

  8. C#事件の.net下的EventArgs和EventHandler

    事件参数(EventArgs) .Net框架里边提供的一个委托EventHandler来Handle事件. 一样,搞一个场景(这个场景是书里的):买车.经销商(CarDealer)会上新车(NewCa ...

  9. 1.02-get-params

    import urllib.request import urllib.parse import string def get_method_params(): url = "http:// ...

  10. 机器学习算法总结(九)——降维(SVD, PCA)

    降维是机器学习中很重要的一种思想.在机器学习中经常会碰到一些高维的数据集,而在高维数据情形下会出现数据样本稀疏,距离计算等困难,这类问题是所有机器学习方法共同面临的严重问题,称之为“ 维度灾难 ”.另 ...