成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

CloudFoundrySessionAffinity(StickySession)的實(shí)現(xiàn)

會話保持(Session Affinity),有時(shí)又稱粘滯會話(Sticky Sessions), 是負(fù)載均衡領(lǐng)域設(shè)計(jì)需要著力解決的重要問題之一,也是一個(gè)相對比較復(fù)雜的問題。

成都創(chuàng)新互聯(lián)公司自成立以來,一直致力于為企業(yè)提供從網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作、網(wǎng)站建設(shè)、電子商務(wù)、網(wǎng)站推廣、網(wǎng)站優(yōu)化到為企業(yè)提供個(gè)性化軟件開發(fā)等基于互聯(lián)網(wǎng)的全面整合營銷服務(wù)。公司擁有豐富的網(wǎng)站建設(shè)和互聯(lián)網(wǎng)應(yīng)用系統(tǒng)開發(fā)管理經(jīng)驗(yàn)、成熟的應(yīng)用系統(tǒng)解決方案、優(yōu)秀的網(wǎng)站開發(fā)工程師團(tuán)隊(duì)及專業(yè)的網(wǎng)站設(shè)計(jì)師團(tuán)隊(duì)。

會話保持是指在負(fù)載均衡器上的一種機(jī)制,在完成負(fù)載均衡任務(wù)的同時(shí),還負(fù)責(zé)一系列相關(guān)連的訪問請求會分配到一臺服務(wù)器上?

當(dāng)用戶向服務(wù)器發(fā)起請求,服務(wù)器創(chuàng)建一個(gè)session,并把session id以cookie的形式寫回給客戶。

看一個(gè)例子:當(dāng)我訪問SAP UI5應(yīng)用時(shí),

Cloud Foundry Session Affinity(Sticky Session)的實(shí)現(xiàn)

在http請求的頭部觀察到客戶端要求服務(wù)器返回以cookie的形式返回session id的請求字段:

Cloud Foundry Session Affinity(Sticky Session)的實(shí)現(xiàn)

在服務(wù)器響應(yīng)的頭部字段果然返回了session id:

Cloud Foundry Session Affinity(Sticky Session)的實(shí)現(xiàn)

這些cookie信息能夠在Chrome開發(fā)者工具的Application標(biāo)簽頁里的Cookies區(qū)域查看:

Cloud Foundry Session Affinity(Sticky Session)的實(shí)現(xiàn)

如此一來,只要客戶的瀏覽器不關(guān),再去訪問服務(wù)器時(shí),訪問請求會自動(dòng)附上session id去,服務(wù)器端檢測到這個(gè)session id后,就會使用內(nèi)存中維持的與這個(gè)id對應(yīng)的session為客戶端服務(wù)。

再回到我們討論的會話保持這個(gè)話題。什么時(shí)候需要會話保持?舉個(gè)大家每天都會遇到的例子,大家在淘寶或者京東上購物時(shí),從完成用戶身份認(rèn)證到瀏覽店鋪,選擇心儀商品加入購物車,一直到最后下單完成支付,需要經(jīng)過很多次和服務(wù)器的交互過程才能完成整個(gè)交易。由于這幾次交互過程從順序上和邏輯上是密切相關(guān)的,服務(wù)器在進(jìn)行這些交互過程的某一個(gè)交互步驟時(shí)需要一個(gè)上下文(Context),即上一次交互過程的輸出,因此要求這些相關(guān)的交互過程都由一臺服務(wù)器完成。

在這種情況下,假設(shè)負(fù)載均衡器仍然把這些相關(guān)交互session分散到不同的服務(wù)器實(shí)例上,就會帶來很糟糕的用戶體驗(yàn),比如客戶在瀏覽器上每點(diǎn)擊一次,都會彈出登錄頁面。或者即使用戶輸入了正確的驗(yàn)證碼,卻仍然提示驗(yàn)證碼錯(cuò)誤。由于服務(wù)器處理實(shí)例不一樣,也有可能造成客戶放入購物車的物品丟失。

這就是會話保持機(jī)制引入的原因:確保把來自同一客戶的一個(gè)完整會話的請求轉(zhuǎn)發(fā)至后臺同一臺服務(wù)器進(jìn)行處理。

那么Cloud Foundry的Session Affinity是怎么實(shí)現(xiàn)的呢?

官方文檔有介紹:

https://docs.cloudfoundry.org/concepts/http-routing.html#sessions

(1) To support sticky sessions, configure your app to return a JSESSIONID cookie in responses. The app generates a JSESSIONID as a long hash in the following format:

您的應(yīng)用在響應(yīng)結(jié)果里需要加上一個(gè)JSESSIONID字段,長度如下:

1A530637289A03B07199A44E8D531427

(2) If an app returns a JSESSIONID cookie to a client request, the CF routing tier generates a unique VCAP_ID for the app instance based on its GUID in the following format:

CF routing tier基于app生成的JSESSIONID生成一個(gè)VCAP_ID: 323f211e-fea3-4161-9bd1-615392327913

(3) 接下來客戶每次發(fā)起請求,必須同時(shí)提供JSESSIONID和VCAP_ID。JSESSION_ID交給應(yīng)用,用于實(shí)現(xiàn)session粘連。而VCAP_ID用于標(biāo)識服務(wù)的應(yīng)用實(shí)例,如果應(yīng)用掛了,gorouter會把請求路由到另一個(gè)應(yīng)用實(shí)例上。

要獲取更多Jerry的原創(chuàng)文章,請關(guān)注公眾號"汪子熙":

Cloud Foundry Session Affinity(Sticky Session)的實(shí)現(xiàn)

當(dāng)前文章:CloudFoundrySessionAffinity(StickySession)的實(shí)現(xiàn)
網(wǎng)站URL:http://jinyejixie.com/article40/ijgpeo.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供移動(dòng)網(wǎng)站建設(shè)自適應(yīng)網(wǎng)站、網(wǎng)站內(nèi)鏈用戶體驗(yàn)、外貿(mào)建站、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

小程序開發(fā)
平凉市| 赞皇县| 台湾省| 长沙市| 股票| 大宁县| 临清市| 万源市| 云安县| 兴义市| 郧西县| 尤溪县| 徐汇区| 富宁县| 靖安县| 黔南| 东源县| 卓资县| 攀枝花市| 方城县| 水城县| 和林格尔县| 房产| 咸宁市| 贵港市| 中西区| 沙河市| 房产| 阿坝| 太谷县| 阜城县| 花莲县| 视频| 江油市| 大荔县| 吉首市| 枣阳市| 松溪县| 鄂温| 仙桃市| 五家渠市|