您好,登錄后才能下訂單哦!
當一個傳統的Web項目需要從單點擴張成為集群式時候,需要考慮的一個問題:分布式Session的實現。通常分布式session有三種解決方式,現對三種方式進行簡單記錄:
1.session廣播
顧名思義,廣播就是在集群里的所有服務器將他們的session向其他服務器進行同步,使得每一臺服務器上都有其他服務器的session信息,這樣,不管請求進入那個服務器,都可以獲取session信息。這種方式從理解和實現方面都比較簡單,同時避免了單點故障引起的session丟失問題。但是因為廣播是多臺服務器同步的過程,會有一定的延時性,所以只適用于集群規模小,網絡開銷小的情況。
2.粘性session
這是一種指定session的方法,在集群的路由處對所有的請求做出指定服務器的分發,使得某個攜帶session的請求每次都進入同一臺后端服務器。這種方式沒有額外的網絡開銷,適用于中等規模的集群,但是由于每條請求都對應一個服務器,所以當有服務器Down機時,相應的session會丟失,出現單點故障。
3.緩存集中式管理
將session信息單獨取出,所有的session信息都放在指定緩存中進行集中式管理,所有攜帶session的請求都會先進入這里處理,然后向后端服務器進行相應的分發。通常使用的緩存有memcache、redis等。這種方式使用于大型集群,方便增加集群節點,但穩定性性依賴于緩存的穩定性,需要有合理的寫入策略,避免緩存失效后session丟失。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。