日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

分布式Session共享解决方案

發(fā)布時間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 分布式Session共享解决方案 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

轉(zhuǎn)載自?分布式Session共享解決方案

Session是服務(wù)器用來保存用戶操作的一系列會話信息,由Web容器進行管理。單機情況下,不存在Session共享的情況,分布式情況下,如果不進行Session共享會出現(xiàn)請求落到不同機器要重復(fù)登錄的情況,一般來說解決Session共享有以下幾種方案。

1、session復(fù)制

session復(fù)制是早期的企業(yè)級的使用比較多的一種服務(wù)器集群session管理機制。應(yīng)用服務(wù)器開啟web容器的session復(fù)制功能,在集群中的幾臺服務(wù)器之間同步session對象,使得每臺服務(wù)器上都保存所有的session信息,這樣任何一臺宕機都不會導(dǎo)致session的數(shù)據(jù)丟失,服務(wù)器使用session時,直接從本地獲取。

這種方式在應(yīng)用集群達到數(shù)千臺的時候,就會出現(xiàn)瓶頸,每臺都需要備份session,出現(xiàn)內(nèi)存不夠用的情況。

2、session綁定

利用hash算法,比如nginx的ip_hash,使得同一個Ip的請求分發(fā)到同一臺服務(wù)器上。

這種方式不符合對系統(tǒng)的高可用要求,因為一旦某臺服務(wù)器宕機,那么該機器上的session也就不復(fù)存在了,用戶請求切換到其他機器后么有session,無法完成業(yè)務(wù)處理。

3、利用cookie記錄session

session記錄在客戶端,每次請求服務(wù)器的時候,將session放在請求中發(fā)送給服務(wù)器,服務(wù)器處理完請求后再將修改后的session響應(yīng)給客戶端。這里的客戶端就是cookie。

利用cookie記錄session的也有缺點,比如受cookie大小的限制,能記錄的信息有限;每次請求響應(yīng)都需要傳遞cookie,影響性能,如果用戶關(guān)閉cookie,訪問就不正常。但是由于

cookie的簡單易用,可用性高,支持應(yīng)用服務(wù)器的線性伸縮,而大部分要記錄的session信息比較小,因此事實上,許多網(wǎng)站或多或少的在使用cookie記錄session。

4、session服務(wù)器

session服務(wù)器可以解決上面的所有的問題,利用獨立部署的session服務(wù)器(集群)統(tǒng)一管理session,服務(wù)器每次讀寫session時,都訪問session服務(wù)器。

這種解決方案事實上是應(yīng)用服務(wù)器的狀態(tài)分離,分為無狀態(tài)的應(yīng)用服務(wù)器和有狀態(tài)的session服務(wù)器,然后針對這兩種服務(wù)器的不同特性分別設(shè)計架構(gòu)。

對于有狀態(tài)的session服務(wù)器,一種比較簡單的方法是利用分布式緩存(memcached), 數(shù)據(jù)庫等。在這些產(chǎn)品的基礎(chǔ)上進行包裝,使其符合session的存儲和訪問要求。

如果業(yè)務(wù)場景對session管理有比較高的要求,比如利用session服務(wù)基層單點登錄(sso),用戶服務(wù)器等功能,需要開發(fā)專門的session服務(wù)管理平臺。


總結(jié)

以上是生活随笔為你收集整理的分布式Session共享解决方案的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。