使用 Spring Session 將 HTTP 工作階段資料儲存

已完成

在本單元中,了解如何使用 Azure Cache for Redis 透過 Spring Session 儲存 HTTP 工作階段資料。

HTTP 工作階段

HTTP 工作階段會儲存使用者資料,通常是要求之間的安全性資訊。 HTTP 工作階段也可以儲存應用程式狀態,或快取經常存取的使用者資料。 因為 HTTP 工作階段會儲存在伺服器上,所以可能會發生可擴縮性問題。 當您的應用程式相應擴大至更多節點時,您必須複寫工作階段。

HTTP 工作階段自早期的 Servlet 起就已在 JAVA 中提供使用,而 JAVAServer Face (JSF) 等技術會大量使用它們。 縮放 HTTP 工作階段一直是個問題,而所有主要的 JAVA 應用程式伺服器都有工作階段複寫機制。

其中一個問題是 HTTP 工作階段複寫機制不是標準化的,而是依賴每個應用程式伺服器專屬的 API。 此設定可能會導致可攜性問題。

Spring Session

Spring Session 是 Spring 子專案,可提供設定 HTTP 工作階段複寫的一般解決方案。 Spring Session 支援 Redis 作為數個後端選項之一。 Spring Session 會複寫 Redis 內的所有工作階段資料;如此一來,當應用程式擴增時,每個節點都會有使用者工作階段的存取權。

Spring Session 設定類似於先前的 Spring Data 設定,並說明另一個建議的 Redis 使用案例。

使用 Spring Session 搭配 Redis

某些設定與 Spring Data Redis 相同,而且您只需要針對這兩個解決方案執行一次。 如同 Spring Data 設定,您通常會使用 Spring Initializr 並執行下列主要工作:

  1. 將 Spring Session Data Redis 程式庫新增至您的應用程式。
  2. 設定您的 application.yml 檔案,以與您的 Azure Cache for Redis 執行個體連線。
  3. 使用 JAVA 的 HTTP 工作階段機制來儲存或取得資料。

繼續進行下一個單元以實作此設定。