亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        基于集群節(jié)點(diǎn)間即時(shí)拷貝的會(huì)話(huà)同步技術(shù)研究①

        2017-03-27 09:36:23曹海濤蔣厚明
        關(guān)鍵詞:會(huì)話(huà)客戶(hù)端集群

        曹海濤, 胡 牧, 蔣厚明

        ?

        基于集群節(jié)點(diǎn)間即時(shí)拷貝的會(huì)話(huà)同步技術(shù)研究①

        曹海濤, 胡 牧, 蔣厚明

        (南瑞集團(tuán)公司(國(guó)網(wǎng)電力科學(xué)研究院), 南京 210003)

        集群會(huì)話(huà)同步技術(shù)目前主要有如下幾種: 基于Cookie的會(huì)話(huà)同步, 基于數(shù)據(jù)庫(kù)的會(huì)話(huà)同步, 基于分布式緩存的會(huì)話(huà)同步. 在以上會(huì)話(huà)同步技術(shù)的基礎(chǔ)上, 提出了一種基于集群節(jié)點(diǎn)間即時(shí)拷貝的會(huì)話(huà)同步技術(shù), 將會(huì)話(huà)標(biāo)識(shí)信息存放在客戶(hù)端中, 避免了在客戶(hù)端中存放完整的會(huì)話(huà)信息, 從而可防止用戶(hù)身份信息暴露的安全隱患; 同時(shí), 在客戶(hù)端向服務(wù)器發(fā)送請(qǐng)求的過(guò)程中, 只攜帶會(huì)話(huà)標(biāo)識(shí)信息, 而不是完整的會(huì)話(huà)信息, 傳輸?shù)臄?shù)據(jù)量將大大減少, 提高了客戶(hù)端對(duì)服務(wù)器的訪(fǎng)問(wèn)效率; 各集群節(jié)點(diǎn)間同步會(huì)話(huà)信息, 不需要從數(shù)據(jù)庫(kù)中獲取會(huì)話(huà)信息, 避免了頻繁使用數(shù)據(jù)庫(kù)帶來(lái)的性能瓶頸; 也不需要使用專(zhuān)門(mén)的會(huì)話(huà)緩存服務(wù)器, 減低了開(kāi)發(fā)和部署成本, 并具有良好的應(yīng)用前景.

        集群服務(wù); 會(huì)話(huà); 會(huì)話(huà)同步; 即時(shí)拷貝

        1 引言

        用戶(hù)使用Web服務(wù), 基本上需要客戶(hù)端與Web 服務(wù)器的多次交互. 而同一個(gè)用戶(hù)和服務(wù)端的交互, 稱(chēng)為用戶(hù)和服務(wù)器之間的會(huì)話(huà). HTTP 協(xié)議本身是無(wú)狀態(tài)的, 用戶(hù)與Web應(yīng)用交互過(guò)程信息(如購(gòu)物車(chē)信息、用戶(hù)狀態(tài)、用戶(hù)記錄等)就只能依靠會(huì)話(huà)(session)技術(shù)[1], 需要基于HTTP 協(xié)議支持會(huì)話(huà)狀態(tài)的機(jī)制. 而這樣的機(jī)制能使Web 服務(wù)器從多次單獨(dú)的HTTP 請(qǐng)求中看到“會(huì)話(huà)”, 也就是知道請(qǐng)求是來(lái)自哪個(gè)會(huì)話(huà)的[2]. 具體實(shí)現(xiàn)方式為: 在會(huì)話(huà)開(kāi)始時(shí), 分配唯一的會(huì)話(huà)標(biāo)識(shí)(SessionId), 通過(guò)某種手段把這個(gè)標(biāo)識(shí)告訴客戶(hù)端, 以后每次請(qǐng)求的時(shí)候, 客戶(hù)端都會(huì)帶上這個(gè)會(huì)話(huà)標(biāo)識(shí)來(lái)告訴Web 服務(wù)器請(qǐng)求是屬于哪個(gè)會(huì)話(huà)的. Web服務(wù)器集群是通過(guò)高速局域網(wǎng)互聯(lián)的多臺(tái)Web服務(wù)器組成的, 用戶(hù)的HTTP請(qǐng)求被均衡地、透明地分配到集群中具體的服務(wù)器上, 由其完成請(qǐng)求響應(yīng)過(guò)程, 并將響應(yīng)信息返回給用戶(hù)[3]. 假設(shè)來(lái)自同一客戶(hù)端的兩次請(qǐng)求被分發(fā)到了兩臺(tái)不同的Web服務(wù)器上, 而這兩次請(qǐng)求之間又存在關(guān)聯(lián)(如: 第一次請(qǐng)求是用戶(hù)登錄, 第二次請(qǐng)求是獲取信息), Web服務(wù)器需要標(biāo)識(shí)這兩次請(qǐng)求是否來(lái)自同一個(gè)用戶(hù). 此時(shí)就需要使用會(huì)話(huà)同步技術(shù), 會(huì)話(huà)同步技術(shù)是用來(lái)解決集群環(huán)境中, 組成集群的各個(gè)Web服務(wù)器如何標(biāo)識(shí)某一次客戶(hù)端的請(qǐng)求是否屬于同一會(huì)話(huà)的. 本文所討論的會(huì)話(huà)同步技術(shù)屬于會(huì)話(huà)保持機(jī)制[4]的范疇. 目前主流的會(huì)話(huà)同步技術(shù)主要有: 基于Cookie的會(huì)話(huà)同步技術(shù), 基于數(shù)據(jù)庫(kù)的會(huì)話(huà)同步技術(shù)和基于分布式緩存的會(huì)話(huà)同步技術(shù).

        在基于Cookie的會(huì)話(huà)同步方案中, 服務(wù)端將會(huì)話(huà)信息返回給客戶(hù)端, 客戶(hù)端將會(huì)話(huà)信息存儲(chǔ)在Cookie中, 客戶(hù)端每次請(qǐng)求時(shí)攜帶Cookie中保存的會(huì)話(huà)信息, 服務(wù)端根據(jù)Cookie中的會(huì)話(huà)信息創(chuàng)建會(huì)話(huà).

        在基于數(shù)據(jù)庫(kù)的會(huì)話(huà)同步方案中, 服務(wù)端將會(huì)話(huà)信息存放在數(shù)據(jù)庫(kù)中, 并將會(huì)話(huà)ID返回給客戶(hù)端, 客戶(hù)端保存會(huì)話(huà)ID信息, 客戶(hù)端再次請(qǐng)求時(shí), 各集群節(jié)點(diǎn)根據(jù)客戶(hù)端攜帶的會(huì)話(huà)ID從數(shù)據(jù)庫(kù)中獲取會(huì)話(huà)信息.

        在基于分布式緩存的會(huì)話(huà)同步方案中, 服務(wù)端將會(huì)話(huà)信息存放在分布式緩存服務(wù)器上, 并將會(huì)話(huà)ID返回給客戶(hù)端, 客戶(hù)端保存會(huì)話(huà)ID信息, 客戶(hù)端再次請(qǐng)求時(shí), 各集群節(jié)點(diǎn)根據(jù)會(huì)話(huà)ID從分布式緩存服務(wù)器上獲取會(huì)話(huà)信息.

        在此基礎(chǔ)上, 本文提出了一種基于集群節(jié)點(diǎn)間即時(shí)拷貝的會(huì)話(huà)同步技術(shù), 并將此技術(shù)應(yīng)用于某企業(yè)移動(dòng)應(yīng)用項(xiàng)目的后臺(tái)服務(wù)架構(gòu)中, 取得了良好的效果.

        2 基于集群節(jié)點(diǎn)間即時(shí)拷貝的會(huì)話(huà)同步技術(shù)原理及實(shí)現(xiàn)

        2.1 技術(shù)原理

        基于集群節(jié)點(diǎn)間即時(shí)拷貝的會(huì)話(huà)同步技術(shù)實(shí)現(xiàn)原理如下:

        (1) 客戶(hù)端第一次訪(fǎng)問(wèn)集群服務(wù)時(shí), 當(dāng)前服務(wù)的集群節(jié)點(diǎn)為客戶(hù)端創(chuàng)建會(huì)話(huà)并保存在內(nèi)存中, 然后將會(huì)話(huà)標(biāo)識(shí)反饋給客戶(hù)端, 客戶(hù)端接收并保存會(huì)話(huà)標(biāo)識(shí), 會(huì)話(huà)標(biāo)識(shí)包括: 會(huì)話(huà)ID和當(dāng)前服務(wù)的集群節(jié)點(diǎn)IP.

        (2) 客戶(hù)端再次訪(fǎng)問(wèn)集群服務(wù)時(shí), 需要攜帶會(huì)話(huà)標(biāo)識(shí), 當(dāng)前服務(wù)的集群節(jié)點(diǎn)根據(jù)客戶(hù)端攜帶的會(huì)話(huà)標(biāo)識(shí)解析出創(chuàng)建該會(huì)話(huà)的集群節(jié)點(diǎn)IP和會(huì)話(huà)ID, 并查看本集群節(jié)點(diǎn)內(nèi)是否存在該會(huì)話(huà)ID, 若存在, 則根據(jù)該會(huì)話(huà)ID獲取對(duì)應(yīng)的會(huì)話(huà)信息; 否則, 根據(jù)創(chuàng)建該會(huì)話(huà)的集群節(jié)點(diǎn)IP和會(huì)話(huà)ID到對(duì)應(yīng)的集群節(jié)點(diǎn)上獲取會(huì)話(huà)信息.

        (3) 某一集群節(jié)點(diǎn)中的會(huì)話(huà)信息更新時(shí), 此集群節(jié)點(diǎn)通知其他集群節(jié)點(diǎn)更新會(huì)話(huà)信息.

        (4) 各集群節(jié)點(diǎn)定時(shí)清理超時(shí)的會(huì)話(huà)信息, 以釋放服務(wù)器的內(nèi)存資源.

        2.2 技術(shù)實(shí)現(xiàn)

        基于集群節(jié)點(diǎn)間即時(shí)拷貝的會(huì)話(huà)同步技術(shù)具體實(shí)現(xiàn)步驟如圖1所示.

        圖1 實(shí)施流程圖

        (1) 假設(shè)當(dāng)前訪(fǎng)問(wèn)的客戶(hù)端為客戶(hù)端2, 客戶(hù)端2第一次訪(fǎng)問(wèn)集群服務(wù)時(shí), 負(fù)載均衡服務(wù)將本次請(qǐng)求分發(fā)到集群節(jié)點(diǎn)2上, 集群節(jié)點(diǎn)2將為客戶(hù)端2創(chuàng)建會(huì)話(huà)信息生成會(huì)話(huà)標(biāo)識(shí), 并將會(huì)話(huà)標(biāo)識(shí)信息返回給客戶(hù)端2.

        (2) 客戶(hù)端2再次訪(fǎng)問(wèn)集群服務(wù)時(shí), 負(fù)載均衡服務(wù)將本次請(qǐng)求分發(fā)到集群節(jié)點(diǎn)N上(N代表任意集群節(jié)點(diǎn)), 集群節(jié)點(diǎn)N根據(jù)客戶(hù)端2攜帶的會(huì)話(huà)標(biāo)識(shí)信息, 解析出集群節(jié)點(diǎn)2的IP和會(huì)話(huà)ID, 并根據(jù)會(huì)話(huà)ID在本節(jié)點(diǎn)中查找對(duì)應(yīng)的會(huì)話(huà)信息, 若找到, 則將會(huì)話(huà)信息返回; 否則, 根據(jù)集群節(jié)點(diǎn)2的IP到集群節(jié)點(diǎn)2上獲取會(huì)話(huà)ID對(duì)應(yīng)的會(huì)話(huà)信息. 獲取會(huì)話(huà)信息后, 根據(jù)客戶(hù)端的會(huì)話(huà)ID校驗(yàn)客戶(hù)端的請(qǐng)求是否合法. 校驗(yàn)成功后, 集群節(jié)點(diǎn)N將根據(jù)客戶(hù)端的請(qǐng)求返回響應(yīng)信息.

        (3) 某個(gè)集群節(jié)點(diǎn)更新會(huì)話(huà)信息時(shí), 通知其他在線(xiàn)的集群節(jié)點(diǎn)更新會(huì)話(huà)信息, 具體實(shí)現(xiàn)方式如下: 更新會(huì)話(huà)信息的集群節(jié)點(diǎn)獲取其他所有在線(xiàn)的集群節(jié)點(diǎn), 并遠(yuǎn)程調(diào)用各集群節(jié)點(diǎn)的更新會(huì)話(huà)接口, 根據(jù)會(huì)話(huà)ID更新會(huì)話(huà)信息.

        (4) 各集群節(jié)點(diǎn)定時(shí)清理無(wú)效的會(huì)話(huà)信息, 以釋放無(wú)效的會(huì)話(huà)信息所占用的服務(wù)器內(nèi)存資源. 具體實(shí)現(xiàn)方式為: 各集群節(jié)點(diǎn)遍歷本節(jié)點(diǎn)內(nèi)的會(huì)話(huà)信息, 判斷會(huì)話(huà)是否超時(shí), 若會(huì)話(huà)超時(shí)則清理.

        3 各會(huì)話(huà)同步方案性能分析

        基于Cookie的會(huì)話(huà)同步方案, 客戶(hù)端每次請(qǐng)求都需要攜帶完整的會(huì)話(huà)信息, 當(dāng)會(huì)話(huà)信息過(guò)大時(shí), 會(huì)導(dǎo)致請(qǐng)求到達(dá)服務(wù)端的時(shí)間過(guò)長(zhǎng), 從而影響訪(fǎng)問(wèn)效率; 并且, 不同瀏覽器對(duì)Cookie使用有不同的限制, 超過(guò)限制就會(huì)丟棄Cookie, 這會(huì)影響應(yīng)用系統(tǒng)的正常使用[5]. 同時(shí), 由于每次請(qǐng)求都需要攜帶完整的會(huì)話(huà)信息, 會(huì)增加暴露用戶(hù)信息的風(fēng)險(xiǎn).

        基于數(shù)據(jù)庫(kù)的會(huì)話(huà)同步方案, 為同步會(huì)話(huà)信息需要頻繁對(duì)數(shù)據(jù)庫(kù)進(jìn)行讀寫(xiě), 在集群服務(wù)器較多, 訪(fǎng)問(wèn)量較大時(shí), 容易造成性能瓶頸.

        基于分布式緩存的會(huì)話(huà)同步方案, 將會(huì)話(huà)信息存放在緩存服務(wù)器上, 在系統(tǒng)部署時(shí)必須額外增加緩存服務(wù)器, 所有對(duì)會(huì)話(huà)的操作都必須在緩存服務(wù)器上進(jìn)行. 在整個(gè)系統(tǒng)中使用會(huì)話(huà)緩存服務(wù)器將會(huì)增加系統(tǒng)部署和開(kāi)發(fā)的難度, 同時(shí)新增的會(huì)話(huà)緩存服務(wù)器將會(huì)帶來(lái)新的維護(hù)成本.

        基于集群節(jié)點(diǎn)間即時(shí)拷貝的會(huì)話(huà)同步方案, 將會(huì)話(huà)信息存放在組成集群的各個(gè)節(jié)點(diǎn)服務(wù)器上, 解決了基于分布式緩存的會(huì)話(huà)同步方案需要額外增加緩存服務(wù)器的問(wèn)題; 將會(huì)話(huà)標(biāo)識(shí)存放在客戶(hù)端, 解決了基于Cookie的會(huì)話(huà)同步方案將完整的會(huì)話(huà)信息存放在客戶(hù)端的問(wèn)題; 同時(shí), 將會(huì)話(huà)信息存儲(chǔ)在集群服務(wù)的各個(gè)節(jié)點(diǎn)的內(nèi)存中, 解決了基于數(shù)據(jù)庫(kù)的會(huì)話(huà)同步方案中將會(huì)話(huà)信息存儲(chǔ)在數(shù)據(jù)庫(kù)中所帶來(lái)的性能問(wèn)題.

        下表為各會(huì)話(huà)同步方案比較表, 從表中可以看出, 基于Cookie的會(huì)話(huà)同步方案, 在客戶(hù)端獲取會(huì)話(huà)時(shí), 服務(wù)端的網(wǎng)絡(luò)調(diào)用次數(shù)N和數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)次數(shù)D均為0, 但是該方案是將完整的會(huì)話(huà)信息存放在Cookie中, 發(fā)送請(qǐng)求時(shí)需攜帶完整的會(huì)話(huà)信息, 當(dāng)會(huì)話(huà)信息較大時(shí), 必然會(huì)影響訪(fǎng)問(wèn)效率, 同時(shí)將會(huì)話(huà)信息存儲(chǔ)在Cookie中, 存在泄露會(huì)話(huà)信息的風(fēng)險(xiǎn), 安全性較低, 而其他會(huì)話(huà)同步方案, 將會(huì)話(huà)信息存儲(chǔ)在服務(wù)端安全性相對(duì)較高. 基于數(shù)據(jù)庫(kù)的會(huì)話(huà)同步方案, 在客戶(hù)端獲取會(huì)話(huà)時(shí), 服務(wù)端的網(wǎng)絡(luò)調(diào)用次數(shù)N=0, 數(shù)據(jù)庫(kù)訪(fǎng)問(wèn)次數(shù)D=1, 但是該方案中每次會(huì)話(huà)更新時(shí)都需要操作數(shù)據(jù)庫(kù), 會(huì)造成性能瓶頸. 基于分布式緩存的會(huì)話(huà)同步方案中, N=1, 每次請(qǐng)求都需要從會(huì)話(huà)緩存服務(wù)器中獲取會(huì)話(huà)信息; 基于集群節(jié)點(diǎn)間即時(shí)拷貝的會(huì)話(huà)同步方案中, N<=1, 只有本節(jié)點(diǎn)不存在會(huì)話(huà)信息時(shí)才會(huì)到其他節(jié)點(diǎn)同步會(huì)話(huà)信息, 由此可以看出, 在會(huì)話(huà)信息獲取效率上, 基于集群節(jié)點(diǎn)間即時(shí)拷貝的會(huì)話(huà)同步方案是較優(yōu)的.

        表1 會(huì)話(huà)同步方案比較表

        4 結(jié)語(yǔ)

        本文首先介紹客戶(hù)端和Web服務(wù)器的會(huì)話(huà)以及會(huì)話(huà)同步的相關(guān)概念, 指出在集群環(huán)境中會(huì)話(huà)同步的必要性, 并介紹目前主流的會(huì)話(huà)同步技術(shù), 分析這些會(huì)話(huà)同步技術(shù)存在的問(wèn)題. 在此基礎(chǔ)上提出一種新的會(huì)話(huà)同步技術(shù): 基于集群節(jié)點(diǎn)間即時(shí)拷貝的會(huì)話(huà)同步技術(shù), 重點(diǎn)探討了基于集群節(jié)點(diǎn)間即時(shí)拷貝的會(huì)話(huà)同步技術(shù)的實(shí)現(xiàn)原理和具體實(shí)現(xiàn)步驟.

        需要指出的是本文提出的會(huì)話(huà)同步技術(shù)的主要實(shí)現(xiàn)思路是在組成集群服務(wù)的各個(gè)集群節(jié)點(diǎn)間復(fù)制會(huì)話(huà)信息, 以實(shí)現(xiàn)會(huì)話(huà)同步. 該方案也存在一定局限性, 在集群節(jié)點(diǎn)較多時(shí), 頻繁地進(jìn)行會(huì)話(huà)復(fù)制會(huì)帶來(lái)較大的系統(tǒng)開(kāi)銷(xiāo), 影響系統(tǒng)的整體性能. 在后續(xù)的工作中, 作者將對(duì)此問(wèn)題進(jìn)行深入分析研究.

        最后, 筆者將該會(huì)話(huà)同步技術(shù)應(yīng)用于某企業(yè)移動(dòng)應(yīng)用平臺(tái)項(xiàng)目中, 用于解決客戶(hù)端移動(dòng)設(shè)備和后臺(tái)Web服務(wù)器集群之間的會(huì)話(huà)同步問(wèn)題, 取得了良好的效果.

        1趙艷芳,蔣云起.Web服務(wù)器負(fù)載均衡會(huì)話(huà)保持的研究.云南民族大學(xué)學(xué)報(bào)(自然科學(xué)版),2011,20(4):296–300.

        2 曾憲杰.大型網(wǎng)站系統(tǒng)與Java中間件實(shí)踐.北京:電子工業(yè)出版社,2014,(4):42–46.

        3 郭成城,晏蒲柳.一種異構(gòu)Web服務(wù)器集群動(dòng)態(tài)負(fù)載均衡算法.計(jì)算機(jī)學(xué)報(bào),2005,28(2):179–184.

        4 Tsai HH, Sun DW. Color image watermark extraction based on support vector machines. Information Sciences, 2007, 177(2): 550–569.

        5 許令波.深入分析Java Web技術(shù)內(nèi)幕.北京:電子工業(yè)出版, 2014.

        Research on Session Synchronization Technology Based on Instant Copy of Cluster Node

        CAO Hai-Tao, HU Mu, JIANG Hou-Ming

        (Nari Group Corporation (State Grid Electric Power Research Institute), Nanjing 210003, China)

        Session synchronization technology mainly has the following several: session synchronization based on cookie, session synchronization based on database, session synchronization based on distributed cache. Based on the above session synchronization technologies, this paper gives a session synchronization technology based on instant copy of cluster node. This technology stores session id information in client to avoid store full session information in client, thus avoids the danger of user identity information exposure. Besides, in the process of sending a request to the server, only taking session id instead of complete session information. This greatly reduces transmitted data, so then improves the access efficiency of the client to server. Sychronizing session information between cluster nodes, there is no need to get session information from database which avoids performance bottlenecks on using database frequently. It also does not need specialized session cache servers, which cuts the cost of development and deployment. So, it has good application prospects.

        cluster service; session; session synchronization; instant copy

        2016-06-24;

        2016-10-12

        [10.15888/j.cnki.csa.005653]

        猜你喜歡
        會(huì)話(huà)客戶(hù)端集群
        海上小型無(wú)人機(jī)集群的反制裝備需求與應(yīng)對(duì)之策研究
        一種無(wú)人機(jī)集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計(jì)
        電子制作(2018年11期)2018-08-04 03:25:40
        縣級(jí)臺(tái)在突發(fā)事件報(bào)道中如何應(yīng)用手機(jī)客戶(hù)端
        孵化垂直頻道:新聞客戶(hù)端新策略
        基于Vanconnect的智能家居瘦客戶(hù)端的設(shè)計(jì)與實(shí)現(xiàn)
        Python與Spark集群在收費(fèi)數(shù)據(jù)分析中的應(yīng)用
        有意冒犯性言語(yǔ)的會(huì)話(huà)含義分析
        勤快又呆萌的集群機(jī)器人
        漢語(yǔ)教材中的會(huì)話(huà)結(jié)構(gòu)特征及其語(yǔ)用功能呈現(xiàn)——基于85個(gè)會(huì)話(huà)片段的個(gè)案研究
        沖突語(yǔ)的會(huì)話(huà)分析研究
        中文字幕精品乱码一区| 精品国产v无码大片在线观看| 亚洲天堂资源网| 国产成人精品一区二区日出白浆| 日韩在线精品视频一区| 东北老女人高潮大喊舒服死了| 日本动态120秒免费| 日韩Va亚洲va欧美Ⅴa久久| 中国男女黄色完整视频| 牛牛在线视频| 久久婷婷色综合一区二区| 亚洲一区二区三区免费av在线| 一区二区三区免费观看日本| 国产亚洲精品美女久久久| 人与嘼av免费| 久久婷婷国产五月综合色| 视频在线观看国产自拍| 一本一道久久综合久久| 日韩欧美第一页| 青青草在线成人免费视频| 韩国av一区二区三区不卡| 熟女人妻在线视频| 国产精品系列亚洲第一| 久久精品国产一区老色匹| 中文字幕乱码高清完整版| 又爽又黄禁片视频1000免费| 日韩女优一区二区视频| 免费视频无打码一区二区三区 | 久久久久亚洲AV无码专区喷| 中文字幕中文字幕三区| 精品视频一区二区三区在线观看 | 全免费a级毛片免费看视频| 国产三级自拍视频在线| 日本人妻免费在线播放| 性色av一区二区三区| 中文字幕亚洲人妻系列| 日韩精品免费在线视频一区| 肉体裸交137日本大胆摄影| 亚洲AV日韩AV无码A一区| 中文字幕有码手机视频| 国内精品久久久久久久97牛牛 |