999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2017-03-27 09:36:23曹海濤蔣厚明
計算機系統(tǒng)應用 2017年3期
關鍵詞:數(shù)據(jù)庫信息

曹海濤, 胡 牧, 蔣厚明

?

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

曹海濤, 胡 牧, 蔣厚明

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

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

集群服務; 會話; 會話同步; 即時拷貝

1 引言

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

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

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

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

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

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

2.1 技術原理

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

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

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

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

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

2.2 技術實現(xiàn)

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

圖1 實施流程圖

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

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

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

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

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

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

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

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

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

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

表1 會話同步方案比較表

4 結語

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

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

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

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

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

3 郭成城,晏蒲柳.一種異構Web服務器集群動態(tài)負載均衡算法.計算機學報,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技術內幕.北京:電子工業(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]

猜你喜歡
數(shù)據(jù)庫信息
數(shù)據(jù)庫
財經(jīng)(2017年15期)2017-07-03 22:40:49
訂閱信息
中華手工(2017年2期)2017-06-06 23:00:31
數(shù)據(jù)庫
財經(jīng)(2017年2期)2017-03-10 14:35:35
數(shù)據(jù)庫
財經(jīng)(2016年15期)2016-06-03 07:38:02
數(shù)據(jù)庫
財經(jīng)(2016年3期)2016-03-07 07:44:46
數(shù)據(jù)庫
財經(jīng)(2016年6期)2016-02-24 07:41:51
展會信息
中外會展(2014年4期)2014-11-27 07:46:46
數(shù)據(jù)庫
財經(jīng)(2010年20期)2010-10-19 01:48:32
信息
健康信息
祝您健康(1987年3期)1987-12-30 09:52:32
主站蜘蛛池模板: 国产精品爽爽va在线无码观看 | 中文字幕丝袜一区二区| 91视频日本| 多人乱p欧美在线观看| 熟女视频91| 看av免费毛片手机播放| 国产永久在线观看| 亚洲不卡影院| 五月天久久综合| 在线人成精品免费视频| 亚洲日韩国产精品综合在线观看| 在线人成精品免费视频| 思思99思思久久最新精品| 国产成人午夜福利免费无码r| 天天综合网亚洲网站| 午夜视频在线观看免费网站| 热久久这里是精品6免费观看| 久久人与动人物A级毛片| 免费无码AV片在线观看中文| 亚洲一欧洲中文字幕在线| 2021亚洲精品不卡a| 58av国产精品| 国内精品久久久久久久久久影视| 国产真实乱人视频| 国产日韩欧美在线视频免费观看| 情侣午夜国产在线一区无码| 呦女亚洲一区精品| 国产精品亚洲一区二区三区在线观看| 久久人搡人人玩人妻精品| 六月婷婷综合| 午夜丁香婷婷| 日本黄色a视频| 亚洲一区第一页| 成人免费网站久久久| 91国内外精品自在线播放| 国产人成在线视频| 国产精品香蕉| a在线亚洲男人的天堂试看| 国产在线视频导航| 日韩一级毛一欧美一国产 | 国产精品女在线观看| 亚洲成人福利网站| 青青操视频在线| 亚洲一区二区日韩欧美gif| 国产亚洲欧美日韩在线一区二区三区 | 毛片视频网| 国产成人亚洲无吗淙合青草| 亚洲国产成人精品一二区| 99久久这里只精品麻豆| 国内精品自在自线视频香蕉| 91小视频版在线观看www| 久久婷婷五月综合色一区二区| 日韩AV手机在线观看蜜芽| 九色91在线视频| 欧美日韩成人| 中文成人在线| 五月综合色婷婷| 国产福利免费在线观看| 农村乱人伦一区二区| 九九九国产| 久久动漫精品| 国内毛片视频| 国产激情无码一区二区免费 | 国产99视频精品免费视频7 | 国产欧美一区二区三区视频在线观看| 男人天堂伊人网| 国产爽妇精品| 国产精品视屏| 91精品aⅴ无码中文字字幕蜜桃| 久久美女精品| 正在播放久久| 国产内射一区亚洲| 久久综合激情网| 美女潮喷出白浆在线观看视频| 国产成人一区在线播放| 久久99国产乱子伦精品免| 色欲综合久久中文字幕网| 亚洲精品无码日韩国产不卡| 日韩黄色大片免费看| 色国产视频| 欧美一级特黄aaaaaa在线看片| 中文字幕在线观看日本|