• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      基于集群節(jié)點間即時拷貝的會話同步技術(shù)研究①

      2017-03-27 09:36:23曹海濤蔣厚明
      計算機系統(tǒng)應(yīng)用 2017年3期
      關(guān)鍵詞:會話客戶端集群

      曹海濤, 胡 牧, 蔣厚明

      ?

      基于集群節(jié)點間即時拷貝的會話同步技術(shù)研究①

      曹海濤, 胡 牧, 蔣厚明

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

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

      集群服務(wù); 會話; 會話同步; 即時拷貝

      1 引言

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

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

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

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

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

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

      2.1 技術(shù)原理

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

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

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

      (3) 某一集群節(jié)點中的會話信息更新時, 此集群節(jié)點通知其他集群節(jié)點更新會話信息.

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

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

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

      圖1 實施流程圖

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

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

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

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

      3 各會話同步方案性能分析

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

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

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

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

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

      表1 會話同步方案比較表

      4 結(jié)語

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

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

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

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

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

      3 郭成城,晏蒲柳.一種異構(gòu)Web服務(wù)器集群動態(tài)負載均衡算法.計算機學(xué)報,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]

      猜你喜歡
      會話客戶端集群
      海上小型無人機集群的反制裝備需求與應(yīng)對之策研究
      一種無人機集群發(fā)射回收裝置的控制系統(tǒng)設(shè)計
      電子制作(2018年11期)2018-08-04 03:25:40
      縣級臺在突發(fā)事件報道中如何應(yīng)用手機客戶端
      傳媒評論(2018年4期)2018-06-27 08:20:24
      孵化垂直頻道:新聞客戶端新策略
      傳媒評論(2018年4期)2018-06-27 08:20:16
      基于Vanconnect的智能家居瘦客戶端的設(shè)計與實現(xiàn)
      電子測試(2018年10期)2018-06-26 05:53:34
      Python與Spark集群在收費數(shù)據(jù)分析中的應(yīng)用
      有意冒犯性言語的會話含義分析
      勤快又呆萌的集群機器人
      漢語教材中的會話結(jié)構(gòu)特征及其語用功能呈現(xiàn)——基于85個會話片段的個案研究
      沖突語的會話分析研究
      辽源市| 南通市| 永和县| 长岭县| 塔城市| 土默特右旗| 浦江县| 凤阳县| 巩留县| 凤庆县| 易门县| 长阳| 彰武县| 新乡县| 潢川县| 页游| 武鸣县| 拜泉县| 荣昌县| 龙海市| 湖北省| 颍上县| 隆子县| 兴义市| 双桥区| 亚东县| 金昌市| 京山县| 石嘴山市| 康保县| 杂多县| 桃江县| 张家港市| 化德县| 漳州市| 宜兰县| 大同市| 清水河县| 安顺市| 竹山县| 长兴县|