session一致性的解決方法,很多新手對(duì)此不是很清楚,為了幫助大家解決這個(gè)難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
東光ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為成都創(chuàng)新互聯(lián)公司的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!
服務(wù)器為每個(gè)用戶創(chuàng)建一個(gè)會(huì)話,存儲(chǔ)用戶的相關(guān)信息,以便多次請(qǐng)求能夠定位到同一個(gè)上下文,這個(gè)相關(guān)信息就是session。這樣,當(dāng)用戶在應(yīng)用程序的Web頁(yè)之間跳轉(zhuǎn)時(shí),存儲(chǔ)在session對(duì)象中的變量將不會(huì)丟失,而是在整個(gè)用戶會(huì)話中一直存在下去。
session是對(duì)http無狀態(tài)協(xié)議的補(bǔ)充,達(dá)到狀態(tài)保持的目的
假設(shè)用戶包含登錄信息的session都記錄在第一臺(tái)server上,反向代理如果將請(qǐng)求路由到另一臺(tái)server上,可能就找不到相關(guān)信息,而導(dǎo)致用戶需要重新登錄。
優(yōu)點(diǎn):
服務(wù)端不需要存儲(chǔ)
缺點(diǎn):
每次http請(qǐng)求都攜帶session,占網(wǎng)絡(luò)帶寬
數(shù)據(jù)存儲(chǔ)在客戶端上,并在網(wǎng)絡(luò)傳輸,存在泄漏、篡改等安全隱患
session存儲(chǔ)的數(shù)據(jù)大小受cookie限制
由于技術(shù)不斷演進(jìn),客戶端保存cookie出現(xiàn)了信息全量cookie,cookie存儲(chǔ)sessionId和JWT三種方式,他們優(yōu)缺點(diǎn)各異,可以點(diǎn)擊筆者的另一篇博客查看相關(guān)介紹
快速了解會(huì)話管理三劍客cookie、session和JWT
思路:
多個(gè)server之間相互同步session,這樣每個(gè)server之間都包含全部的session
優(yōu)點(diǎn):
只需要設(shè)定配置,應(yīng)用程序不需要修改代碼
不足:
session的同步需要數(shù)據(jù)傳輸,占內(nèi)網(wǎng)帶寬,有延時(shí)
所有server都包含所有session數(shù)據(jù),數(shù)據(jù)量受最小內(nèi)存的sever限制,水平拓展能力差
思路:
將session存儲(chǔ)在server后端的集中式緩存
優(yōu)點(diǎn):
沒有安全隱患
可以水平擴(kuò)展,支持緩存集群或橫向拓展
不足:
增加了一次網(wǎng)絡(luò)調(diào)用
需要修改應(yīng)用代碼
session會(huì)話粘連:英文原詞為"Sticky Sessions"
思路:
反向代理層讓同一個(gè)用戶的請(qǐng)求保證落在一臺(tái)server上呢?
方法一:四層代理hash。反向代理層使用用戶ip來做hash,以保證同一個(gè)ip的請(qǐng)求落在同一個(gè)server上(更推薦,保證傳輸層不引入業(yè)務(wù)層的邏輯)
方法二:七層代理hash。反向代理使用http協(xié)議中的某些業(yè)務(wù)屬性來做hash,例如sid,city_id,user_id等,能夠更加靈活的實(shí)施hash策略,以保證同一個(gè)瀏覽器用戶的請(qǐng)求落在同一個(gè)server上
優(yōu)點(diǎn):
只需要改nginx配置,不需要修改應(yīng)用代碼
可以支持server水平擴(kuò)展
不足:
server水平擴(kuò)展,rehash后session重新分布,會(huì)有一部分用戶路由不到正確的session
即使hash散列均勻,也不能保證server的負(fù)載均勻
看完上述內(nèi)容是否對(duì)您有幫助呢?如果還想對(duì)相關(guān)知識(shí)有進(jìn)一步的了解或閱讀更多相關(guān)文章,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝您對(duì)創(chuàng)新互聯(lián)的支持。