周凱 李弘 褚寧琳
摘要:當(dāng)前智慧化校園建設(shè)正響應(yīng)時代的需要處于高速發(fā)展時期,如何建設(shè)一套高性能、可擴展的網(wǎng)絡(luò)教育資源平臺,特別是建設(shè)基于藝術(shù)類學(xué)科以非結(jié)構(gòu)化數(shù)據(jù)為主的云資源平臺是一個迫切需要探討研究的問題。文章從實際出發(fā),針對當(dāng)前資源平臺建設(shè)技術(shù)的突出問題和藝術(shù)類資源特點,提出基于云計算的分布式架構(gòu)的資源云平臺建設(shè)方案。建立一套基于云計算的分布式架構(gòu)、分散存儲、統(tǒng)一管理的系統(tǒng)平臺,以實現(xiàn)藝術(shù)類資源的共建共享。
關(guān)鍵詞:分布式;資源;云;負載均衡
分布式系統(tǒng)早在20世紀(jì)七八十年代就已經(jīng)出現(xiàn)。進入互聯(lián)網(wǎng)時代,分布式系統(tǒng)得以高速發(fā)展。如Google,它充分運用分布式系統(tǒng)架構(gòu)的設(shè)計思想及技術(shù),構(gòu)建了一套系統(tǒng)完整的軟件架構(gòu),使其具有可以處理高并發(fā)請求響應(yīng)以及海量數(shù)據(jù)處理等能力。本文基于云計算平臺的基礎(chǔ)上,結(jié)合藝術(shù)類資源云平臺的特點,及非結(jié)構(gòu)化數(shù)據(jù)的處理,采用分布式系統(tǒng)架構(gòu)技術(shù),探討一套先進的,適用于多種云架構(gòu)形式的藝術(shù)類資源云平臺部署方案。
1 分布式服務(wù)系統(tǒng)概念
分布式服務(wù)系統(tǒng)就是將系統(tǒng)組件分布在幾臺獨立的服務(wù)器上,而后把各服務(wù)器連接成一個統(tǒng)一的網(wǎng)絡(luò)相互協(xié)作,從而完成整個系統(tǒng)的功能。
分布式結(jié)構(gòu)在系統(tǒng)速度的處理上有著明顯的優(yōu)勢。各系統(tǒng)功能分別放在不同的服務(wù)器上以并行的方式協(xié)同工作,完成各自的功能。例如:在一臺服務(wù)器上運行兩個進程:A和B,如果A消耗系統(tǒng)資源(CPU或者內(nèi)存)過高,則B只能使用少量的系統(tǒng)資源,這樣會導(dǎo)致進程B的效率低下。如果我們把A拆分到其他服務(wù)器上,那么除去A之外,原硬件服務(wù)器上其余的進程就能夠獲得更多的系統(tǒng)資源。通過多線程操作一個進程A,如果將其分為4個任務(wù),2分鐘時間完成一個任務(wù)。非分布式結(jié)構(gòu)系統(tǒng)將要花費8分鐘來完成,而采用分布式結(jié)構(gòu)最快則需要2分鐘即可完成。
典型分布式服務(wù)器架構(gòu)由3部分組成:表現(xiàn)層、業(yè)務(wù)層、數(shù)據(jù)層。表現(xiàn)層主要負責(zé)用戶與業(yè)務(wù)層之間的連接和數(shù)據(jù)的傳遞與處理,在整個系統(tǒng)中工作相對來說比較簡單。業(yè)務(wù)層是系統(tǒng)核心層。負責(zé)各功能模塊之間的運行通訊及數(shù)據(jù)的處理。數(shù)據(jù)層則主要負責(zé)數(shù)據(jù)的存儲。
從上述典型分布式架構(gòu)可以得出,由于各部分所承擔(dān)的任務(wù)不同,對硬件的要求也是有所區(qū)別,所以我們可以根據(jù)每層具體的工作,因地制宜地選擇相應(yīng)的服務(wù)器。如表現(xiàn)層負責(zé)的工作相對比較簡單,在服務(wù)器的配置上可以根據(jù)實際情況選擇實用經(jīng)濟型的;業(yè)務(wù)層負責(zé)整個資源云平臺的業(yè)務(wù)邏輯與數(shù)據(jù)處理,注重處理的速度、能力與資源的消耗。對服務(wù)器配置選擇上要求很高;數(shù)據(jù)層負責(zé)數(shù)據(jù)源。在搭建時要根據(jù)具體情況,充分考慮數(shù)據(jù)量、數(shù)據(jù)查詢檢索的要求及數(shù)據(jù)存儲的速度等因素,選擇相應(yīng)的數(shù)據(jù)庫與服務(wù)器配置。
2 藝術(shù)類資源云平臺設(shè)計目標(biāo)
2.1高穩(wěn)定
保證服務(wù)器群組穩(wěn)定高效運行,服務(wù)器之間的通信順暢及負載均衡。盡可能降低服務(wù)器異常崩潰、宕機的情況,確保資源云平臺提供的服務(wù)與用戶體驗的基本要求。
2.2高效率
高效率體現(xiàn)在工作效率高、系統(tǒng)承載能力強、成本得到有效控制,可根據(jù)實際服務(wù)器的功能配置相應(yīng)的服務(wù)器以節(jié)約成本,減少帶寬與維護人員。
2.3可擴展
云平臺建設(shè)應(yīng)充分考慮內(nèi)容及功能模塊的可擴展性,使平臺服務(wù)具有可持續(xù)性;服務(wù)器集群具有周期性更新的擴展能力,并能應(yīng)對用戶人數(shù)的增長與運營后期用戶在線留存率的保持。
2.4低耦合
充分降低各功能之間的耦合度,將各功能模塊分別在獨立的服務(wù)器上運行,保障各功能運行的獨立性。
2.5安全性
安全是資源云平臺運營中最重要的問題之一。為保障用戶信息安全,需建立嚴謹科學(xué)的身份驗證機制,使用安全套接協(xié)議層或高度加密協(xié)議反嗅取密碼,是有效的應(yīng)對措施,以解決用戶誤操作、欺騙、重復(fù)登錄、密碼恢復(fù)等安全問題。
3 分布式架構(gòu)的藝術(shù)類資源云平臺設(shè)計
藝術(shù)類資源云平臺設(shè)計以云計算技術(shù)為基礎(chǔ),構(gòu)建一套基于B/S架構(gòu)的云平臺。平臺主要包含:Web Server、登錄服務(wù)器(Login Server)、網(wǎng)關(guān)(Gateway Server)、業(yè)務(wù)邏輯服務(wù)(Scene Server)、數(shù)據(jù)服務(wù)(DB Server)等。拓撲結(jié)構(gòu)如圖l所示。
系統(tǒng)整體架構(gòu)中除業(yè)務(wù)邏輯服務(wù)器采用單線程外,消息層則采用多線程來工作。對于客戶端與登錄服務(wù)器、Gateway之間的連接任務(wù)具有如下特點。
(l)需要大量線程完成的任務(wù)。此類任務(wù)數(shù)量多,單位任務(wù)小,完成時間短。如:客戶端通過Web服務(wù)器訪問網(wǎng)頁注冊、登錄任務(wù)。
(2)性能要求過高的業(yè)務(wù)應(yīng)用,如:需服務(wù)器迅速響應(yīng)大規(guī)模客戶的突發(fā)性請求現(xiàn)象。
(3)大規(guī)模客戶突發(fā)性請求,會導(dǎo)致內(nèi)存在短時間內(nèi)達到峰值,出現(xiàn)“Out of Memory”錯誤??梢岳枚嗑€程技術(shù)來解決處理器單元內(nèi)多個線程執(zhí)行的問題,它可以顯著地減少處理器單元的閑置時間,增加處理器單元的吞吐能力[1]。若要進一步減少創(chuàng)建線程的數(shù)目,及創(chuàng)建線程與銷毀的時間,也可以建立封裝了一個線程多個連接的線程池框架,示例如下。
class TCPTaskPooI
{
ThreadGroup verifyThreads;//驗證線程,可以有多個
ThreadGroup okayThreads;//處理主線程,多個
SyncThread* syncThread;//等待同步線程
RecycleThread* recycleThread;//連接回收線程
bool m versionVerified;//是否驗證過版本 }
3.1網(wǎng)關(guān)(Gateway)
Gateway服務(wù)器也稱網(wǎng)關(guān)服務(wù)器。按圖1所示,Gateway建立在客戶端與業(yè)務(wù)邏輯服務(wù)器(Scene Server)中間。其任務(wù)在于實現(xiàn)客戶端與業(yè)務(wù)邏輯服務(wù)器的隔離??蛻舳伺c業(yè)務(wù)邏輯服務(wù)器之間的通信,通過中間層Gateway進行轉(zhuǎn)發(fā)數(shù)據(jù)包實現(xiàn)信息交互通信。這樣客戶端與Scene Server由于不直接通信所以并不需要知道業(yè)務(wù)邏輯服務(wù)器內(nèi)部的構(gòu)建如IP、port等。帶來的好處是多方面的:安全上Gateway作為客戶端與業(yè)務(wù)邏輯服務(wù)器之間的中轉(zhuǎn)站,很好地隔離了內(nèi)網(wǎng)與外網(wǎng),使外網(wǎng)不能直接與業(yè)務(wù)邏輯服務(wù)器內(nèi)部作訪問,加強了安全性。作為平臺的唯一入口,減少了與平臺服務(wù)器內(nèi)其他服務(wù)之間的多條連接。很大程度上節(jié)約了網(wǎng)絡(luò)資源的消耗。
Gateway負責(zé)通信的加密、解密、過濾錯誤非法包、超時判斷與通信協(xié)議的邏輯處理。連接在網(wǎng)關(guān)上的客戶端通過Gateway發(fā)送的心跳,獲知客戶端與網(wǎng)關(guān)之間的連接狀態(tài),如果客戶端掉線,網(wǎng)管就會通知各服務(wù)器做用戶的脫機、下線處理。
對于高負載下的通信瓶頸問題,可以采取多網(wǎng)關(guān)技術(shù),同時部署多個Gateway來增加通信流量,達到平衡負載的作用。即便某個Gateway出現(xiàn)宕機,它也只影響到所屬Gateway的客戶端,而其他客戶端則不受影響。
Gateway作為客戶端與平臺各服務(wù)的進出口,承擔(dān)著頻繁的消息發(fā)送和接收工作。為提高系統(tǒng)效率,可以采取一種“以空間、換時間”的做法,采用“池”技術(shù),建立一個消息對象池。“池”的技術(shù)己廣泛應(yīng)用于系統(tǒng)設(shè)計中,例如內(nèi)存池、數(shù)據(jù)庫連接池?!俺亍钡膬?yōu)勢在于節(jié)省對象重復(fù)創(chuàng)建和初始化時間,對于頻繁請求和使用的對象,簡化訪問和使用的過程,從而提升系統(tǒng)的性能。首先事先創(chuàng)建好被使用的對象,并按照特定的上下文環(huán)境進行初始化,保證客戶端提取后可直接使用,使用完畢后將對象歸還給“池”。當(dāng)系統(tǒng)達到生命期的臨界值,由“池”統(tǒng)一釋放。這些保存在內(nèi)存中隨時供客戶端調(diào)取的對象,所占用的內(nèi)存空間與系統(tǒng)效率相比微乎其微。
3.2業(yè)務(wù)邏輯服務(wù)(Scene Server)
業(yè)務(wù)邏輯服務(wù)主要提供具體的業(yè)務(wù)邏輯,如:流媒體播放服務(wù)、會話交互服務(wù)、軟件下載等。它們共同完成平臺邏輯的運算和大量的信息傳遞、數(shù)據(jù)同步工作。
在做好各子模塊的交互、信息傳遞工作的同時,要重點考慮兩個問題:一是服務(wù)器的性能消耗問題。這里首先要考慮的是服務(wù)器承載多個子模塊的信息通信與邏輯處理帶來的性能消耗。二是基于流媒體服務(wù)的并發(fā)問題。前者我們通過把消耗資源過大的非共性的子系統(tǒng)單獨劃分服務(wù)處理。后者在解決大并發(fā)應(yīng)用設(shè)計上,可以建設(shè)一套非結(jié)構(gòu)化數(shù)據(jù)中心的負載均衡,如圖2所示。
搭建主流媒體服務(wù)及若干臺子流媒體服務(wù)可通過負載均衡及數(shù)據(jù)分發(fā)技術(shù),由主流媒體服務(wù)器自動把上傳資源分發(fā)到相應(yīng)的子流媒體服務(wù)器的存儲空間上。系統(tǒng)依據(jù)流媒體服務(wù)器的網(wǎng)卡流量大小進行負載均衡,通過數(shù)據(jù)中心的調(diào)度服務(wù),判斷由哪一臺流媒體服務(wù)器響應(yīng)當(dāng)前上層應(yīng)用系統(tǒng)的數(shù)據(jù)應(yīng)用請求,并從對應(yīng)的存儲空間讀取數(shù)據(jù),為上層應(yīng)用系統(tǒng)提供數(shù)據(jù)資源的流媒體播放服務(wù)。由于服務(wù)器的網(wǎng)卡及存儲設(shè)備的磁盤I/O存在局限,所以上述方式會對服務(wù)器及存儲設(shè)備占用較多。為了能最大化提升單臺服務(wù)器的服務(wù)能力,并降低整體硬件設(shè)備的投入,可以對服務(wù)器做多網(wǎng)卡綁定,來提升單臺服務(wù)器的網(wǎng)絡(luò)帶寬。配備高速率硬盤提升磁盤的I/O效率,從而提升單服務(wù)器的流媒體并發(fā)訪問量。具體設(shè)計如圖3所示。
3.3 Session Server
Session Server主要負責(zé)Scene與Scene之間的橋接,完成多個Scene之間的數(shù)據(jù)交互。
當(dāng)用戶過多,Scene Server負載過高時,分出多組SceneServer可以有效地提高業(yè)務(wù)邏輯的處理能力,Session Server則用于多個Scene Server之間的數(shù)據(jù)交互。
Scene Server與Session Server服務(wù)器之間的通信使用TCP連接:在Scene Server初始化的過程中,首先建立Session Client實例,將該實例連接Session Server,從而實現(xiàn)Scene Server與Session Server之間的連接。連接的基本策略是將其中一個Server抽象成服務(wù)器,另一個Server抽象成客戶端。
Session Server與Scene Server通信時,Session Server層次級別高于Scene Server,所以抽象Session Server為服務(wù)器,Scene Server為客戶端。Scene Server中建立一個SessionClient類與Session Server的一個SessionTask保持長連接。每次建立的通信則為SessionTask與SessionClient之間的通信。示例如下:
bool SessionClient: :connectToSessionServer()
if (!connect()) {
Eagle: :logger->error("連接 Session服務(wù)器
return false;
}
//發(fā)送到SessionServer進行注冊;
Cmd: : Session: :t_LoginSessionServer crnd;
cmd.serverID = SceneService::getSingleton().getServerID();
cmd.serverType = SceneService::getSingleton().getServerType();
return sendCmd(&cmd.; sizeof(cmd));}
4 藝術(shù)類數(shù)據(jù)資源建設(shè)
藝術(shù)類數(shù)據(jù)資源具有一定的獨特性,即主體為非結(jié)構(gòu)化數(shù)據(jù)。所以基于這樣的特殊性,需要秉承數(shù)據(jù)驅(qū)動服務(wù)的理念,統(tǒng)一數(shù)據(jù)標(biāo)準(zhǔn),集中式、流程化、科學(xué)地處理非結(jié)構(gòu)化與結(jié)構(gòu)化數(shù)據(jù)。
藝術(shù)類資源數(shù)據(jù)類型多樣,所以對每類資源進行標(biāo)準(zhǔn)化時,需從多維度定義屬性,從而處理數(shù)據(jù)之間的異構(gòu)化,完成數(shù)據(jù)清洗,對關(guān)聯(lián)數(shù)據(jù)進行邏輯封裝。數(shù)據(jù)的管理采取世系技術(shù),對產(chǎn)生的多個數(shù)據(jù)集及同一數(shù)據(jù)集內(nèi)部的數(shù)據(jù)演化進行系統(tǒng)記錄及管理[3]。這種數(shù)據(jù)世系管理技術(shù)可以幫助用戶加深對結(jié)果的理解,為教學(xué)科研的研究者提供整體活動的可信度及可重復(fù)性,為大數(shù)據(jù)分析及數(shù)據(jù)挖掘提供系統(tǒng)、準(zhǔn)確的判斷。在出現(xiàn)故障時,結(jié)合容災(zāi)備份機制,也可以準(zhǔn)確、快速地恢復(fù)。
5結(jié)語
本文從實際問題出發(fā),經(jīng)過理論研究,利用云計算技術(shù)、分布式系統(tǒng)架構(gòu)技術(shù)及思想,給出一套系統(tǒng)的分布式架構(gòu)的藝術(shù)類資源云平臺的建設(shè)方案。本方案有效地提高了整體平臺的邏輯運算處理、負載均衡的能力,特別是上層應(yīng)用系統(tǒng)對非結(jié)構(gòu)化數(shù)據(jù)資源的流媒體播放、存儲服務(wù)給出了優(yōu)化辦法,實現(xiàn)高性能、多樣化、可擴展的藝術(shù)類資源云平臺建設(shè)。
[參考文獻]
[1]朱彬若,杜衛(wèi)華,李蕊.電力用戶用電信息采集系統(tǒng)數(shù)據(jù)分析與處理技術(shù)[J]華東電力,2011 (10):1682-1686
[2]王軍.云計算系統(tǒng)資源調(diào)度及安全性研究[D].武漢:武漢理工大學(xué),2013.
[3]高明,金澈清,王曉玲,等.數(shù)據(jù)世系管理技術(shù)研究綜述[J].計算機學(xué)報,2010 (3):33