微服務架構下的統一授權
識別客戶端的身份,並且能夠保存這個身份的狀態
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組播放方式。
如何配置
這種實現方式的問題:
- 同步session數據會造成網絡開銷,隨着集群規模越大,同步session帶來的帶寬影響也越大
- 每個節點需要保存集群中所有節點的session數據,就需要比較大的內存來存儲。
在節點持續增多的情況下,session復制帶來的性能損失會快速增加.特別是當session中保存了較大的對象,而且對象變化較快時,性能下降更加顯著.這種特性使得web應用的水平擴展受到了限制.