其它server不會保存1號用戶的Session信息。nginx
現在的負載均衡server通常都有這個功能(nginx)
數據庫
但是假設出現如下的狀況
緩存
這個時候1號server宕機的狀況下,負載均衡server會把1號用戶導流到2號或者3號server上面,但是用戶在2和3號server上面沒有安全的上下文環境。server會通知用戶又一次登陸。這樣用戶體驗確定會受到影響。而且很是可能用形成用戶的數據丟失。安全
每臺server保留所實用戶的Session這就關係到應用server之間的Session同步問題。實時性要求比較高。session
這樣的方式可以避免上面server獨立Session所遇到的問題,例如如下圖所看到的:負載均衡
這樣的方式即便出現第一種狀況那麼2和3號server上面也保存的1號的Session信息,當出現故障負載均衡server把1號用戶導流到2和3號server上面時。server也會發現有1號用戶的安全上下文,可以繼續訪問而且不需要又一次登陸。cdn
但是這樣的方式也有缺點,那就是相應用server的Session同步實時性要求比較高,而且會帶來額外的跨帶開銷。而且當Session之遙有變化時,就需要同步。假設Session裏面的信息量比較大。那個會佔用至關大的內存消耗。server
server共享Session信息:blog
每個用戶的Session信息都會被存儲到應用以外的另一臺server(多是數據庫,也多是KV存儲服務),這樣應用server就不用存儲每個用戶的Session信息了,節約了很是大的內存開銷。內存
當不一樣應用server需要用到Session信息的時候就去找共享Sessionserver來獲取信息。
這樣負載均衡server也就不用把用戶固定的分配到一臺server上面了,而且也不用server之間來複制Session信息,當Session信息發生改變時,應用server都去共享server改動信息就能夠。
比較依賴於共享server,一旦共享server或者共享server集羣出現故障。用戶會收到很是大影響