新聞中心
分布式架構(gòu)下,session共享有什么方案么?
分布式架構(gòu)下的session共享,也可以稱作分布式session一致性;關(guān)于這個問題,和大家說一說解決方案(如果有其他的方案,可以留言討論)。

如果大家做過web應(yīng)用開發(fā)的話,應(yīng)該對session比較熟悉;服務(wù)器會為每個用戶創(chuàng)建一個會話,存儲用戶的相關(guān)信息,以便在后面的請求中,可以夠定位到同一個上下文。
例如用戶在登錄之后,再進行頁面跳轉(zhuǎn)的時候,存儲在session中的信息會一直保持,如果用戶還沒有session,那么服務(wù)器會創(chuàng)建一個session對象,直到會話過期或主動放棄后(退出),服務(wù)器才會把session終止掉。
在N年前,那個都是單個服務(wù)器的年代,session直接保存在服務(wù)器中,是一點問題沒有的,而且實現(xiàn)起來很容易。
但是隨著分布式架構(gòu)的流行,單個服務(wù)器已經(jīng)不能滿足系統(tǒng)的需要了,通常都會把系統(tǒng)部署在多臺服務(wù)器上,通過負載均衡把請求分發(fā)到其中的一臺服務(wù)器上,這樣很可能同一個用戶的請求被分發(fā)到不同的服務(wù)器上,因為session是保存在服務(wù)器上的,那么很有可能第一次請求訪問的A服務(wù)器,創(chuàng)建了session,但是第二次訪問到了B服務(wù)器,這時就會出現(xiàn)取不到session的情況。
于是,分布式架構(gòu)中,session共享就成了一個很大的問題。
可以參考以下四種方式,具體采用那種根據(jù)實際項目情況做一個權(quán)衡 :
1.Session sticky(粘性):
思路就是某一個用戶第一次登陸時session保存到哪個地方,第二次訪問時還去哪個服務(wù)器找。
2.Session Relication(復(fù)制):
為每臺應(yīng)用服務(wù)器都保存一份session數(shù)據(jù),適用于機器比較少的情況
3.Session 共享:
將session數(shù)據(jù)集中保存,所有的應(yīng)用服務(wù)器都來訪問這個session共享服務(wù)器
4.cookie Base:
session數(shù)據(jù)存放在cookie中,然后在應(yīng)用服務(wù)器從cookies中生成對應(yīng)的session數(shù)據(jù),但是會有安全性的問題
到此,以上就是小編對于的問題就介紹到這了,希望這1點解答對大家有用。
分享標(biāo)題:redis怎么將眾多對象組織在一起
網(wǎng)頁鏈接:http://www.5511xx.com/article/cooiioj.html


咨詢
建站咨詢
