1.   Sso系统分析

1.1. 什么是sso系统

SSO英文全称Single Sign On,单点登录。SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统。它包括可以将这次主要的登录映射到其他应用中用于同一个用户的登录的机制。它是目前比较流行的企业业务整合的解决方案之一。

用来解决分布式环境下的登陆问题,最终的目的是解决分布式环境下session共享的问题,

1.2. 为什么要有单点登录系统

  tomcat集群是多台tomcat服务器部署同一套代码,同时提供相同的服务,tomcat集群虽然可提供一定的高并发的访问,当访问量更大的时候,tomcat集群以session复制的形式是无法处理高并发的请求,此时session复制就是性能上的瓶颈,为了进一步的提高系统的并发处理能力,我们只能放弃tomcate的session复制机制,将session从系统的独立出来,形成公用的session服务器。在基于soa的架构体系中,系统被拆分成了若干只能单一的工程,来提供专一的服务,所以我们可以将用户登陆功能也从系统中拆分出来,拆分出来的登陆工程与session服务器通信,实现一次登陆处处可用的效果。登录独立的好处便是解决了session共享的问题,这样集群便可以几乎不受限制的进行扩展。

1.2.1.    传统的登录实现方式

此方式在只有一个web工程时是没有问题。

1.2.2.    集群环境下

随着用户规模的上升,但几点的tomcat无法承担负载,这时候需要搭建tomcat集群。

集群环境下会出现要求用户多次登录的情况。

集群和分布式的区别在于,集群是多台设备干同一件事情,而分布式是不同的设备干不同的事情。传统模式的工程当用户访问量大的时候就难以招架了,这时首先考虑到的是使用集群来增加网站的吞吐量,一个tomcat可以处理大约300个并发,多个tomcat就可以处理更多的并发。但是tomcat集群有一个致命的瓶颈,那就是session共享,由于不同的tomcat之间要以广播的方式来进行session共享,当tomcat数量较多时,广播便占据了绝大多数带宽,从而使真正的请求难以被处理,一般来说,tomcat集群中tomcat的个数不要超过5个。

解决方案:

1、配置tomcat集群。配置tomcat Session复制。节点数不要超过5个。

  当节点太多的时候,集群的性能反而骤降,这是由于tomcat节点两两之间进行session复制,造成了性能上的瓶颈。

2、可以使用Session服务器,保存Session信息,使每个节点是无状态。需要模拟Session,考虑到session是key-value形式的,具有有限期,这与redis特别相似,可以使用redis来模拟session。

  这里的单点登录系统是使用redis模拟Session,实现Session的统一管理,这样集群便可以几乎不受限制的进行扩展。

如何用redis模拟session

1、要模拟session首先要了解session。

  sessionid如何产生?由谁产生?保存在哪里?

  http://www.cnblogs.com/sharpxiajun/p/3395607.html

  http://lavasoft.blog.51cto.com/62575/275589/

  在计算机专业术语里:session是指一个终端用户与交互系统进行通信时间间隔,通常指从注册入系统到注销系统之间所经过的时间以及如果需要的话,可能还有一定操作空间。

2、用redis来模拟

  链接:即使是同一个用户在不同的设备中登录同一个系统,产生的session也是不同的,彼此之间互相隔离,互不干扰。这就限制了不能使用user的id作为redis中的key来模拟sessionid。

  有效期:session默认存活时间是30分钟。

Sso单点登录分析的更多相关文章

  1. 【SpringSecurityOAuth2】源码分析@EnableOAuth2Sso在Spring Security OAuth2 SSO单点登录场景下的作用

    目录 一.从Spring Security OAuth2官方文档了解@EnableOAuth2Sso作用 二.源码分析@EnableOAuth2Sso作用 @EnableOAuth2Client OA ...

  2. SSO单点登录、跨域重定向、跨域设置Cookie、京东单点登录实例分析

    最近在研究SSO单点登录技术,其中有一种就是通过js的跨域设置cookie来达到单点登录目的的,下面就已京东商城为例来解释下跨域设置cookie的过程 涉及的关键知识点: 1.jquery ajax跨 ...

  3. CAS实现SSO单点登录原理

    1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...

  4. CAS实现SSO单点登录原理(转)

    1.      CAS 简介 1.1.  What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨 ...

  5. oauth2.0实现sso单点登录的方式和相关代码

    SSO介绍 什么是SSO 百科:SSO英文全称Single Sign On,单点登录.SSO是在多个应用系统中,用户只需要登录一次就可以访问所有相互信任的应用系统.它包括可以将这次主要的登录映射到其他 ...

  6. 转 CAS实现SSO单点登录原理

    原文链接   http://m.blog.csdn.net/hxpjava1/article/details/74019017 CAS 简介 1. 1.1.  What is CAS ? CAS (  ...

  7. 一篇文章彻底弄懂CAS实现SSO单点登录原理

    1. CAS 简介 1.1. What is CAS ? CAS ( Central Authentication Service ) 是 Yale 大学发起的一个企业级的.开源的项目,旨在为 Web ...

  8. SSO单点登录思路

    SSO (Single Sign On) 什么是单点登录: 在大型的互联网公司中会有多个系统, 多个项目, 虽然这些项目都属于同一家公司, 但是项目本身其实都是独立的, 那多个系统可不可以实现共享同一 ...

  9. 开发SSO单点登录需要注意的问题

      一.单点登录系统开发需要注意的问题     1.单点登录系统需要支持jsonp请求?    单点登录系统主要是向其他系统提供用户身份验证服务,因此需要提供对外接口,而外部系统通过接口访问时,必然涉 ...

随机推荐

  1. ubuntu scrapy 开发环境搭建

    我的版本是14.04 1.更新系统  ##如果系统没有换国内下载路径需要换下系统的更新下载路径 http://www.cnblogs.com/seablog/p/7043798.html sudo a ...

  2. Emgucv3.0的安装与配置

    环境:vs2015+Emgucv3.0 Emgu Cv简介: Emgu CV 是.NET平台下对OpenCV图像处理库的封装.也就是OpenCV的.NET版.它运行在.NET兼容的编程语言下调用Ope ...

  3. LeetCode 773. Sliding Puzzle

    原题链接在这里:https://leetcode.com/problems/sliding-puzzle/description/ 题目: On a 2x3 board, there are 5 ti ...

  4. 【DUBBO】Dubbo:monitor的配置

    [一]:配置项 <dubbo:monitor protocol="registry"/> [二]:配置解析器-->具体解析器为com.alibaba.dubbo. ...

  5. 连接linux

    mac下连接linux 1 iTerm2 方式一: 在iTerm2的命令行下,输入: //-p端口号(linux默认是22),用户名@linux的IPssh -p 22 username@ip//按e ...

  6. wordpress域名解析到了网站,但是点击其他页面会出现ip而不是域名

         1.前提域名可以访问你的网站证明解析没问题 2.那就是wp后台的设置问题,将url和站点url改为你的域名http://www.eovision.cc清理缓存即可 亲测可用,如果改了出现页面 ...

  7. IIS6自带FTP安装及配置方法

    参考:http://v.huweishen.com/video/9.html ·IIS自带的FTP服务是最安全的,不会像Serv-U那样存在各种漏洞:但其配置过程也比较复杂. ·本节将以虚拟目录方式, ...

  8. JLink RTT Client代替printf(IAR测试OK)

    1.打开J-Link安装目录,确保SEGGER目录中有J-Link RTT Client,没有的话必须安装4.9以上版本: 2.打开SEGGER目录下软件SEGGER目录,硬件版本Hardware是8 ...

  9. Unit03: Spring Web MVC简介 、 基于XML配置的MVC应用 、 基于注解配置的MVC应用

    Unit03: Spring Web MVC简介 . 基于XML配置的MVC应用 . 基于注解配置的MVC应用 springmvc (1)springmvc是什么? 是一个mvc框架,用来简化基于mv ...

  10. 301重定向方法大全及SEO中网址规范化,看着不错先收下

    301重定向方法大全及SEO中网址规范化 现在大多数网站都存在一些内容相同但网址(URL)不一样的重复内容,这些重复的内容对于搜索引擎来说却可能被认为是复制网页,复制网页虽然不会被惩罚但因多个网址存在 ...