首先我們來分析這個問題,問題里出現了兩個關鍵詞:集群、Session,在回答問題之前我們先來聊聊這兩個關鍵詞。
集群
說到集群首先給人的第一感覺是一大堆的服務器,其實這種想法是片面的,
Session
用戶訪問Web服務器后,服務器生成了Session并將唯一標識符(SessionID)存放在客戶端Cookie中,下次瀏覽器發出請求就會攜帶Cookie,服務器根據Cookie中的SessionID就去找對應的Session,找到了則代表會話成功。
集群部署時Session會出什么問題?
因為Session默認是存儲在服務器端的,而集群部署時用戶的請求可能會被定向至不同的節點服務器上,所以可能第一次訪問時保存了會話狀態,第二次訪問又被定向到其它節點(其它節點上并沒有此用戶的Session信息)上導致
如何解決集群環境下的Session同步問題?
解決這個問題,我們只
1、粘性Session
同一個用戶的請求分配到同一臺服務器(通過一致性HASH算法實現),這樣始終在這臺服務器上尋找Session,稱為粘性Session。
2、Session復制
將所有節點服務器上的Session保持同步復制狀態,任何一臺節點上產生新的Session都復制到其它節點服務器。
3、Session共享
以上這幾種解決方案應用最廣的就是Session共享機制,既可解決Session同步問題又無需擔心數據丟失。
以上就是我的觀點,對于這個問題大家是怎么看待的呢?歡迎在下方評論區交流~我是科技領域創作者,十年互聯網從業經驗,我了解更多科技知識!