微服務架構下的統一授權(單點登錄)


微服務架構下的統一授權

識別客戶端的身份,並且能夠保存這個身份的狀態
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應用的水平擴展受到了限制.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM