微服务架构下的统一授权(单点登录)

微服务架构下的统一授权

识别客户端的身份,并且能够保存这个身份的状态
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应用的水平扩展受到了限制.
posted @ 2020-12-15 20:11  snail灬  阅读(948)  评论(0编辑  收藏  举报