應用伺服器集群的session管理

2021-09-20 22:45:33 字數 1192 閱讀 4783

1、什麼是session

a、web應用中將這些多次請求修改使用的上下文物件稱作會話(session)

b、session 物件儲存特定使用者會話所需的資訊。這樣,當使用者在應用程式的 web 頁之間跳轉時,儲存在 session 物件中的變數將不會丟失,而是在整個使用者會話中一直存在下去。

c、當使用者請求來自應用程式的 web 頁時,如果該使用者還沒有會話,則 web 伺服器將自動建立乙個 session 物件。當會話過期或被放棄後,伺服器將終止該會話

2、session的應用場景

在高可用的架構中,業務總是有狀態的,比如電商交易類平台中,需要有購物車記錄使用者的購買資訊;在社交類的**中,需要記錄使用者的當前登陸狀態、最新發布的訊息及好友狀態等,使用者每次重新整理頁面都需要更新這些資訊

3、session管理的幾種手段

a)session複製

應用伺服器開啟web容器的session複製功能,在集群中幾台伺服器之間同步session物件,使得每台伺服器上都儲存所有使用者的session資訊

較大規模的情況下(session複製就會顯得不足了)

b)session繫結

ession繫結可以利用負載均衡的源位址hash演算法實現,負載均衡伺服器總是將**於同乙個ip的請求分發到同一臺伺服器上,顯然session繫結不符合我們對系統高可用的要求,因為一旦伺服器宕機,那麼該機器上的session就不復存在了

優點:實現簡單、配置方便、沒有額外網路開銷

缺點:網路中有機器down掉時、使用者session會丟失、容易造成單點故障

c)利用cookie記錄session

說明:**沒有客戶端,可以利用瀏覽器支援的cookie記錄session(事實上,許多**或多或少地使用cookie記錄session)

不足:

d)session伺服器

應用伺服器集群Session管理

應用伺服器的高可用架構設計主要基於服務無狀態這一特性,但事實上,業務總是有狀態的,在交易類的電子商務 需要有購物車記錄使用者的購買記錄,使用者每次購買請求都是向購物車中增加商品來社交類 中,需要記錄使用者當前登陸狀態 最新發布的訊息及好友狀態等,使用者每次重新整理頁面都需要更新這些資訊。web應用中...

應用伺服器集群的session管理

首先,我們知道,http是無狀態的協議,應用伺服器不儲存業務的上下文資訊,而是進根據每次提交的資料進行相應的業務邏輯處理,因此所有的服務期完全對等,乙個請求由哪個伺服器來處理都是一樣的。因此,為了保證 的高可用,我們可以部署多個web伺服器,通過負載均衡的手段來緩解伺服器壓力 同時乙個伺服器掛掉了,...

應用伺服器集群的Session管理

應用伺服器的高可用架構設計主要基於服務無狀態這一特性,但是事實上,業務總是有狀態的。在交易類的電子商務 需要有購物車記錄使用者的購買資訊,使用者每次購買請求都是向購物車中增加商品 在社交類的 中,需要記錄使用者的當前登入狀態。web應用中將這些多次請求修改使用的上下文物件稱作會話 session 單...