分佈式session共享常用的幾種方式 原

tomcat session共享常用的幾種方式

1、請求精確定位 粘性會話:session sticky

例如基於訪問ip的hash策略,即當前用戶的請求都集中定位到一臺服務器中,這樣單臺服務器保存了用戶的session登錄信息, 如果宕機,則等同於單點部署,會話會丟失,會話不復制。

2、session複製共享:session replication

如tomcat自帶session共享,主要是指集羣環境下,多臺應用服務器之間同步session,使session保持一致,對外透明。
如果其中一臺服務器發生故障,根據負載均衡的原理,調度器會遍歷尋找可用節點,分發請求,由於session已同步,故能保證用戶的session信息不會丟失,會話複製。
此方案的不足之處:
必須在同一種中間件之間完成(如:tomcat-tomcat之間).
session複製帶來的性能損失會快速增加.特別是當session中保存了較大的對象,而且對象變化較快時, 性能下降更加顯著,會消耗系統性能。 這種特性使得web應用的水平擴展受到了限制。 Session內容通過廣播同步給成員,會造成網絡流量瓶頸,即便是內網瓶頸。
在大併發下表現並不好。

3、基於cache DB緩存的session共享

基於 memcache/redis緩存的 session 共享
即使用cacheDB存取session信息,應用服務器接受新請求將session信息保存在cache DB中,當應用服務器發生故障時,調度器會遍歷尋找可用節點, 分發請求,當應用服務器發現session不在本機內存時,則去cacheDB中查找,如果找到則複製到本機,這樣實現session共享和高可用。

https://www.jb51.net/article/124641.htm

4.一些注意的問題

需要注意的是無論是方案2還是方案3 都需要對要保存到session的對象進行序列化。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章