zoukankan      html  css  js  c++  java
  • 微服务架构下的统一授权(单点登录)

    微服务架构下的统一授权

    识别客户端的身份,并且能够保存这个身份的状态
    HTTP协议无状态协议:

    • 浏览器的Cookie(disk / mem),客户端的状态存储
    • 服务器端的session(服务端的状态存储)

    集群模式下的会话丢失

    Session Sticky

    • IPHASH |hash(ip)|%目标服务器的数量=目标服务器的地址

    • HASH算法

      • Hash算法: MD5 、SHA-1 、SHA-256
      • 应用场景: 软件包的签名; HS256/ RS256 ;

        分表的场景 1000数据量的表 - 10个100W的小表 (分片键) 唯一ID
        HASH(ID) %10 ={1~10}
        如果数据量增长过快,需要扩容。 10个表 - 100个表
        HASH(ID) %100 ={1~100}
        影响: 需要对原来的数据进行整体的迁移。

    • 一致性hash算法

      • hash环
    • Session复制

    • Session信息的统一存储

    • Access_Token(携带一些有效信息)

    Session统一存储

    Session Replication

    • session复制,通过相关技术实现session复制,使得集群中的各个服务器相互保存各自节点存储的
    • session数据。tomcat本身就可以实现session复制的功能,基于IP组播放方式。
      如何配置
      这种实现方式的问题:
    1. 同步session数据会造成网络开销,随着集群规模越大,同步session带来的带宽影响也越大
    2. 每个节点需要保存集群中所有节点的session数据,就需要比较大的内存来存储。
      在节点持续增多的情况下,session复制带来的性能损失会快速增加.特别是当session中保存了较大的对象,而且对象变化较快时,性能下降更加显著.这种特性使得web应用的水平扩展受到了限制.
  • 相关阅读:
    最详细易懂的CRC-16校验原理(附源程序)(转)
    深入理解Java的接口和抽象类(转)
    同步、更新、下载Android Source & SDK from 国内镜像站(转载)
    django字段查询参数及聚合函数
    django不返回QuerySets的API
    django查询集API
    django查询操作
    django用包来组织模型
    django模型的继承
    django模型的元数据Meta
  • 原文地址:https://www.cnblogs.com/snail-gao/p/14140709.html
Copyright © 2011-2022 走看看