張蕾,侯瑞春,丁香乾
(中國海洋大學(xué)信息科學(xué)與工程學(xué)院,山東青島266000)
會話保持機制在集群系統(tǒng)中的應(yīng)用研究*
張蕾,侯瑞春,丁香乾
(中國海洋大學(xué)信息科學(xué)與工程學(xué)院,山東青島266000)
用戶會話信息一致性是影響集群負載均衡的一個重要因素。在研究當(dāng)前負載均衡集群系統(tǒng)中會話保持機制的基礎(chǔ)上,針對會話復(fù)制方法中隨著請求增加導(dǎo)致網(wǎng)絡(luò)阻塞的問題,提出一種添加了動態(tài)會話集中存儲設(shè)備的會話復(fù)制機制。經(jīng)模擬驗證,該方法在較大規(guī)模集群環(huán)境下穩(wěn)定響應(yīng)多用戶請求,平均響應(yīng)時間仍處于相對穩(wěn)定狀態(tài),滿足大型企業(yè)級應(yīng)用的會話處理需要。
集群;負載均衡;會話保持機制;會話復(fù)制
1.1 負載均衡技術(shù)
隨著計算機技術(shù)的發(fā)展,服務(wù)器性能成為影響大型應(yīng)用系統(tǒng)的關(guān)鍵因素。Web服務(wù)器集群是通過高速局域網(wǎng)互連的多臺Web服務(wù)器組成的,用戶的HTTP請求被均衡地、透明地分配到集群中具體的服務(wù)器上,由其完成請求響應(yīng)過程,并將響應(yīng)結(jié)果返回給用戶[1]。在性能、可靠性、靈活性方面,服務(wù)器集群比直接升級單臺服務(wù)器有相對較高的效益。
集群服務(wù)器的一個重要技術(shù)是集群內(nèi)部用戶請求的均衡分配——負載均衡。負載均衡技術(shù)能夠根據(jù)各個服務(wù)器處理能力,合理地給各個服務(wù)器分配相應(yīng)的請求任務(wù),均衡分配任務(wù)的過程對用戶來說是完全透明的[2]。
1.2 負載均衡下的會話保持機制
目前,HTTP協(xié)議[3]是Web應(yīng)用中使用最廣泛的應(yīng)用層協(xié)議,采用分布式協(xié)作的方式和請求/響應(yīng)模式的無狀態(tài)協(xié)議。Web應(yīng)用不保存與任何客戶機通信的狀態(tài),只負責(zé)對到來的當(dāng)前請求進行處理,因此需要一定的機制保持會話。對于負載均衡集群,應(yīng)該保證無論請求被分配到哪個節(jié)點,用戶請求對應(yīng)的會話信息應(yīng)該相同,實現(xiàn)節(jié)點之間的信息一致。
會話保持機制主要實現(xiàn)方式分為Cookie機制和會話機制。Cookie機制將用戶信息存放在客戶瀏覽器中,隨著用戶發(fā)送的請求一起傳遞給服務(wù)器。因受到請求大小的限制和安全問題,它不適合存放敏感性的用戶信息。因此,在會話保持機制中,Session機制很常用,它通過將整個用戶會話過程中保持其狀態(tài)的信息存儲在服務(wù)器端來實現(xiàn)。
目前LB集群系統(tǒng)中,常用的會話保持機制[4]有如下幾種:
(1)以負載均衡服務(wù)器入手,管理某個用戶的請求和這些請求被分配到的集群機的對應(yīng)關(guān)系,通過查詢關(guān)系表,將請求分配到之前被分配到的集群機上進行服務(wù)。
(2)負載均衡系統(tǒng)中,在多臺服務(wù)器間根據(jù)處理需要傳遞復(fù)制會話信息,實現(xiàn)會話復(fù)制策略。用戶請求發(fā)送之后,系統(tǒng)會自動查詢是否已經(jīng)產(chǎn)生對應(yīng)的會話信息,然后進行會話處理。
(3)從應(yīng)用程序的會話管理入手,不將會話數(shù)據(jù)保存在集群機本地,而是所有集群機使用同一個會話數(shù)據(jù)緩存區(qū),集群機通過查詢會話緩存區(qū)獲取該用戶的Session id對應(yīng)的數(shù)據(jù)。
1.3 會話保持中的會話復(fù)制機制
在LB集群系統(tǒng)中,也常常采用會話復(fù)制機制維護集群中的用戶信息。會話復(fù)制機制的主要實現(xiàn)方式是:通過序列化,將存儲在內(nèi)存的會話信息轉(zhuǎn)換成可以傳輸?shù)男问?,然后通過廣播將消息傳遞給集群內(nèi)部其他節(jié)點,節(jié)點接收報文并進行相應(yīng)處理,從而使集群系統(tǒng)中每個節(jié)點都存儲著同樣的會話庫。
這種機制的優(yōu)點是負載均衡設(shè)備對任務(wù)分配的靈活性高,系統(tǒng)的穩(wěn)定性強,具有良好的可靠性和高性能,而且不會因為出現(xiàn)單個節(jié)點故障而丟失會話信息。缺點主要是應(yīng)用規(guī)模小。增加節(jié)點會造成傳遞會話復(fù)制信息的工作量加重,造成節(jié)點性能下降,引發(fā)廣播風(fēng)暴。
2改進的會話復(fù)制機制
會話復(fù)制機制的優(yōu)點適用于負載均衡集群。但是,對于集群規(guī)模較大的企業(yè)級應(yīng)用系統(tǒng),會話復(fù)制機制往往不合適。本次研究的主要目的是改進會話復(fù)制機制,使該機制適用于中大型企業(yè)。
復(fù)制會話信息消耗每個節(jié)點的內(nèi)存和網(wǎng)絡(luò)帶寬,是限制群集的規(guī)模的主要原因。進而,為了控制廣播中傳遞的會話信息量,提出將會話信息分解,穩(wěn)定的會話信息部分選擇會話復(fù)制機制,數(shù)據(jù)量大且變化大的部分采取集中存儲機制的會話機制,盡量減少在會話復(fù)制過程中復(fù)制和廣播的信息量,使會話復(fù)制機制更適用于大型應(yīng)用系統(tǒng)。
2.1 改進方法的硬件部署方案
改進后的會話復(fù)制機制采用會話復(fù)制為核心,集中存儲設(shè)備為輔助。具體的服務(wù)器端的硬件部署模型如圖1所示。服務(wù)器端集群多由若干個中小型規(guī)模集群組成。負載均衡平臺的主要功能是轉(zhuǎn)發(fā)用戶請求,對任務(wù)進行分配。負載均衡器接受用戶發(fā)送的請求,針對當(dāng)前系統(tǒng)中的服務(wù)器節(jié)點的狀態(tài),均衡分配用戶的請求。負載均衡器對集群系統(tǒng)的負載均衡起到總體調(diào)控的作用。
圖1 硬件部署方案
集群中包含了服務(wù)器集群、數(shù)據(jù)庫集群以及系統(tǒng)備份和企業(yè)級業(yè)務(wù)。其中,企業(yè)級業(yè)務(wù)包括FTP服務(wù)、郵件服務(wù)和企業(yè)內(nèi)部管理平臺。備份服務(wù)器采用雙機備份的原則,當(dāng)負載均衡設(shè)備出現(xiàn)故障時,便于系統(tǒng)的恢復(fù)。
為了解決會話復(fù)制過程中大量數(shù)據(jù)復(fù)制的問題,在集群結(jié)構(gòu)的內(nèi)部添加了會話集中存儲設(shè)備。該設(shè)備用于存儲穩(wěn)定性較差的會話信息,對該部分數(shù)據(jù)進行統(tǒng)一的管理,采取點對點的傳遞方式,僅限于處理節(jié)點與會話存儲設(shè)備之間的不穩(wěn)定數(shù)據(jù)傳輸。
對于同一用戶的會話數(shù)據(jù),根據(jù)不同的穩(wěn)定性,將用戶的會話數(shù)據(jù)劃分為靜態(tài)數(shù)據(jù)部分和動態(tài)數(shù)據(jù)部分。靜態(tài)會話數(shù)據(jù)變化不大,數(shù)據(jù)量相對較小,具有一定的穩(wěn)定性,如用戶名、系統(tǒng)參數(shù)等,采用會話復(fù)制的形式。動態(tài)會話信息包含一些隨著時間變化而改變的數(shù)據(jù),這些數(shù)據(jù)本身具有復(fù)雜性,如購物車、表單、實時數(shù)據(jù)等。將這部分數(shù)據(jù)的處理放在處理節(jié)點和集中存儲設(shè)備上,有效地控制這部分數(shù)據(jù)傳播的規(guī)模,而且點對點的傳輸處理也減少了對集群內(nèi)部帶寬的占用。
2.2 機制的實現(xiàn)
改進后的會話復(fù)制機制,具體實現(xiàn)流程如圖2所示。
(1)假設(shè)用戶A訪問系統(tǒng)時,服務(wù)器端接收用戶請求,由負載均衡平臺進行任務(wù)分配處理。負載均衡器動態(tài)或靜態(tài)地監(jiān)控集群中各個節(jié)點的負載狀態(tài),將任務(wù)分配到負載相對較低的節(jié)點上。負載均衡平臺可通過軟件或者硬件實現(xiàn),對集群負載起到總體調(diào)控的作用。假設(shè)負載均衡器根據(jù)當(dāng)前集群狀態(tài)將任務(wù)分配到節(jié)點X。
(2)接收到請求后,節(jié)點X會進行相應(yīng)的處理。首先,服務(wù)器X從用戶請求中查詢請求數(shù)據(jù)中的會話ID。
圖2 集群中服務(wù)器處理流程
①如果請求中沒有會話ID,或節(jié)點X沒有從本機會話庫中查詢到該會話ID,集群系統(tǒng)中沒有用戶A的會話信息,則節(jié)點X為用戶A創(chuàng)建對應(yīng)的會話信息。在會話創(chuàng)建完成后,分離出會話中的動態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù)。靜態(tài)會話直接通過廣播的形式發(fā)送到集群中的每臺服務(wù)器。動態(tài)數(shù)據(jù)在完成用戶請求后,再發(fā)送至動態(tài)會話集中存儲設(shè)備。
②如果會話庫中包含對應(yīng)的會話ID,則節(jié)點X先從會話庫中得到對應(yīng)的靜態(tài)數(shù)據(jù)。然后,發(fā)送動態(tài)數(shù)據(jù)請求給動態(tài)會話集中存儲區(qū)。從回復(fù)消息中,提取相應(yīng)的動態(tài)會話數(shù)據(jù)。服務(wù)器X將動態(tài)數(shù)據(jù)和靜態(tài)數(shù)據(jù)結(jié)合在一起,得到用戶完整的會話信息。
(3)經(jīng)過第(2)步得到完整的會話信息后,處理用戶的請求,根據(jù)請求的內(nèi)容進行相關(guān)處理,將處理結(jié)果返回給用戶。處理結(jié)果中包含會話ID,服務(wù)器將會話ID作為Cookie的一個屬性發(fā)送給客戶端,用戶后續(xù)訪問將自動攜帶該Cookie屬性。
(4)任務(wù)完成后,服務(wù)器中存儲的該用戶動態(tài)會話信息可能發(fā)生改變。這時服務(wù)器X需要向動態(tài)會話集中存儲設(shè)備發(fā)送存儲/更新動態(tài)會話數(shù)據(jù)的命令,存儲/更新對應(yīng)的動態(tài)會話數(shù)據(jù)信息。若設(shè)備中沒有該會話ID,則直接存儲新用戶的動態(tài)數(shù)據(jù)。根據(jù)處理后的會話信息中靜態(tài)數(shù)據(jù)是否改變,決定是否發(fā)送廣播消息。
這種模式下,服務(wù)器處理完用戶請求后,一般的數(shù)據(jù)處理中,靜態(tài)數(shù)據(jù)具有穩(wěn)定性,廣播一次就能實現(xiàn)同步。更新的動態(tài)數(shù)據(jù)需要從處理節(jié)點發(fā)送到動態(tài)數(shù)據(jù)管理設(shè)備進行存儲,由集中數(shù)據(jù)管理器進行存儲處理。
3模擬驗證
為了驗證改進后Session復(fù)制算法的性能,使用同一應(yīng)用系統(tǒng)分別采用不同的會話支持技術(shù)進行比較分析。在模擬過程中,應(yīng)用系統(tǒng)采用“青島某服裝企業(yè)供應(yīng)鏈系統(tǒng)”,搭建的集群環(huán)境采用八臺處理機,其中一臺為主服務(wù)器,作負載均衡器。采用Tomcat進行服務(wù)器集群及負載均衡。Session集中存儲設(shè)備的大小配置為256 GB(根據(jù)需要更改大?。?/p>
如表1所示,采用tomcat集群中復(fù)制模式(會話復(fù)制)、Session集中存儲模式和包含動態(tài)Session集中存儲區(qū)的會話復(fù)制方式進行性能比較。
表1 平均響應(yīng)時間對比(ms)
模擬結(jié)果如圖3所示,在初始階段,處理性能都很高。當(dāng)用戶請求增加到一定數(shù)量時,服務(wù)器的性能下降,傳統(tǒng)會話復(fù)制機制會因節(jié)點間傳遞信息量的劇增導(dǎo)致響應(yīng)時間增大。會話集中存儲方式下,因節(jié)點等待訪問存儲用戶數(shù)據(jù),響應(yīng)時間相對改進后的算法較長。動態(tài)會話集中存儲下的會話復(fù)制模式由于查找會話ID以及廣播數(shù)據(jù)量相對較少,雖然加重了節(jié)點對會話數(shù)據(jù)的處理,但隨著用戶訪問量的增多,系統(tǒng)處理效率仍處于相對穩(wěn)定的狀態(tài)。
圖3 平均響應(yīng)時間對比的柱形圖
綜上所述,動態(tài)會話集中存儲下的會話復(fù)制模式在平均響應(yīng)時間比較穩(wěn)定地增長、系統(tǒng)訪問量劇增時,系統(tǒng)處理性能仍然穩(wěn)定,適用于節(jié)點數(shù)目相對較大的集群系統(tǒng)。
針對會話復(fù)制方法無法適應(yīng)大規(guī)模集群系統(tǒng)的問題,提出了動態(tài)會話集中存儲的會話復(fù)制機制,將靜態(tài)會話數(shù)據(jù)采取會話復(fù)制策略,而動態(tài)部分采取集中存儲的策略,進而滿足負載均衡系統(tǒng)中會話一致的要求。經(jīng)實驗驗證,該方法可靠性好,性能穩(wěn)定,可滿足大型應(yīng)用平臺的會話需求。如何提高動態(tài)會話集中存儲下的會話復(fù)制方法的穩(wěn)定性是之后的研究重點。
[1]郭成城,晏蒲柳.一種異構(gòu)Web服務(wù)器集群動態(tài)負載均衡算法[J].計算機學(xué)報,2005,28(2):179-184.
[2]陳一驕,盧錫城,時向泉,等.一種面向會話的自適應(yīng)負載均衡算法[J].軟件學(xué)報,2008,19(7):1828-1836.
[3]趙章界,余智華,張丙奇.HTTP協(xié)議流解析系統(tǒng)的設(shè)計與實現(xiàn)[J].計算機工程,2005,31(24):38-40,46.
[4]趙涓涓,劉濤,強彥,等.云計算中基于Session和內(nèi)容等級的數(shù)據(jù)庫請求分類算法[J].計算機科學(xué),2013(2),40:177-179.
[4]崔煒.基于改進的Canny算子圖像信息提取算法研究[J].科技通報,2012,28(4),52-54.
[5]馮建強,劉文波,于盛林.基于灰度積分投影的人眼定位[J].計算機仿真,2005(4):75-76,104.
[6]李春華,王璐.基于BP神經(jīng)網(wǎng)絡(luò)的鋼絲繩斷絲檢測系統(tǒng)[J].黑龍江科技學(xué)院學(xué)報,2009,37(15),122-123.
[7]Liu Xiaosheng,Deng Zhe,Wang Tingli.Real estate appraisal system based on GIS and BP neural network[J]. Transactions of Nonferrous Metals Society of China,2011(S3):626-630.
(收稿日期:2014-12-09)
The application research of session maintain method based on the cluster system
Zhang Lei,Hou Ruichun,Ding Xiangqian
(College of Information Science and Engineering,Ocean University of China,Qingdao 266000,China)
The uniformity of user session information in server is one of importance factors affecting the cluster load balancing. Based on researching the session maintain method in the current load balancing cluster system,a session replication with dynamic session centralized storage equipment is proposed.The purpose of this method is to solve network congestion with the increasing of request in the session replication method.Simulation results show that the method is stable in response to big user requests in large scale cluster environment,the average response time in the linear growth condition.It meet the need of session processing in largescale enterprise application.
cluster;load balancing;session maintain method;session replication
TP311
A
1674-7720(2015)09-0032-03
2015-01-04)
張蕾(1989-),通信作者,女,碩士,主要研究方向:數(shù)據(jù)庫原理與應(yīng)用,并行與分布式理論。E-mail:240211109@qq.com。
侯瑞春(1963-),女,碩士,教授級高級工程師,主要研究方向:計算機應(yīng)用技術(shù)。
丁香乾(1962-)男,教授,博士生導(dǎo)師,主要研究方向:計算智能、軟件工程、數(shù)字家庭、制造業(yè)信息化等。
國家科技技術(shù)支撐計劃(863計劃)(2012BAH15F01);青島市科技計劃項目課題(13-7-1-ZDZX4-GX)