在分佈式架構或微服務架構下,必須保證一個應用服務器上保存Session後,其它應用服務器能夠同步或共享這個Session,可能會出如今A1系統登陸後建立並保存Session,再次發起請求,請求被轉發到A2系統上顯示未登陸的狀況。如下是幾種常見的分佈式session管理方案:緩存
在單獨的服務器或服務器集羣上使用緩存技術,如Redis存儲Session數據,集中管理全部的Session,全部的Web服務器都從這個存儲介質中存取對應的Session,實現Session共享。
優勢:可靠性高,減小Web服務器的資源開銷。可用性高。安全
通常分佈式架構下這種方式使用的最多。服務器
這種方式每次發起請求的時候都須要將Session數據放到Cookie中傳遞給服務端。
優勢:不須要依賴額外外部存儲,不須要額外配置。
缺點:不安全,易被盜取或篡改;Cookie數量和長度有限制,須要消耗更多網絡帶寬。
適用場景:數據不重要、不敏感且數據量小的狀況。網絡