Session一致性的解决方案
生活随笔
收集整理的這篇文章主要介紹了
Session一致性的解决方案
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
什么是session?
服務器為每個用戶創建一個會話,存儲用戶的相關信息,以便多次請求能夠定位到同一個上下文,這個相關信息就是session。這樣,當用戶在應用程序的Web頁之間跳轉時,存儲在session對象中的變量將不會丟失,而是在整個用戶會話中一直存在下去。
session是對http無狀態協議的補充,達到狀態保持的目的
什么是session一致性問題?
假設用戶包含登錄信息的session都記錄在第一臺server上,反向代理如果將請求路由到另一臺server上,可能就找不到相關信息,而導致用戶需要重新登錄。
解決方法
1. 客戶端保存cookie
2. session復制方法
3. session中心存儲
4. session會話粘連
session會話粘連:英文原詞為"Sticky Sessions"
-
思路:
反向代理層讓同一個用戶的請求保證落在一臺server上呢? -
方法一:四層代理hash。反向代理層使用用戶ip來做hash,以保證同一個ip的請求落在同一個server上(更推薦,保證傳輸層不引入業務層的邏輯)
-
方法二:七層代理hash。反向代理使用http協議中的某些業務屬性來做hash,例如sid,city_id,user_id等,能夠更加靈活的實施hash策略,以保證同一個瀏覽器用戶的請求落在同一個server上
-
優點:
總結
以上是生活随笔為你收集整理的Session一致性的解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HYSTRIX实现主线程和子线程的THR
- 下一篇: 计算机网络是如何通信的「三」