1. 程式人生 > >分散式環境下 session 的跨域共享原理

分散式環境下 session 的跨域共享原理

一、什麼是 session 共享 ?

這裡寫圖片描述

如上圖,是一個簡單的分散式環境,以登入來說,當用戶發出請求,通過負載均衡,可能會走tomcat1伺服器,也可能會走tomcat2伺服器,此時就有可能,我們在tomcat1上實現了登入,儲存了session,但是tomcat2並沒有儲存,當有請求到tomcat2時,我們就需要重新登入,這就是session沒有共享的例項。保持tomcat1和tomcat2的session資料同步,就是session共享。

二、session 共享的實現

  1. 服務端實現session的複製或共享
    這裡寫圖片描述
    在實際開發中,可能不只有tomcat1和tomcat2兩臺伺服器,當伺服器數量很多的時候,該方法會造成資源浪費。

  2. 使用第三方資料庫(如:redis)
    這裡寫圖片描述

  3. 在客戶端維護 session
    登入成功後,寫入一個cookie,根據cookie判斷使用者狀態