趙靜
摘 要:設(shè)計了一種分布式集群框架服務(wù)平臺。它提供平臺級服務(wù),通過ESB集群消息總線進(jìn)行交互。平臺上能夠發(fā)布多種業(yè)務(wù)應(yīng)用或服務(wù)產(chǎn)品,充當(dāng)了基礎(chǔ)資源和上層業(yè)務(wù)應(yīng)用的橋梁和紐帶。隨著所集成的系統(tǒng)數(shù)目增多,該平臺的負(fù)載均衡技術(shù)、失效轉(zhuǎn)移技術(shù)和集群技術(shù)等特性效果就更加突出。
關(guān)鍵詞: PaaS;ESB;分布式;集群;負(fù)載均衡;失效轉(zhuǎn)移
中圖分類號:TP311.52 文獻(xiàn)標(biāo)識碼:A 文章編號:1009-3044(2014)25-5912-05
A Distributed Clustering Framework Service Platform Based on PaaS and ESB
ZHAO Jing
(The First Research Institute of the Ministry of Public Security, Beijing 100048, China)
Abstract:Design a distributed clustering framework service platform. It provides platform level service, interacting by ESB message bus. Through this platform, we can release a variety of business applications and services products, and it serves as the bridge and the link to the foundation resources and the upper business application. As the number of system integration increasing, the platform of the load balancing technology, the failover technology and the cluster technology is sure to feature such as the effect is more prominent.
Key words:PaaS; ESB; distributed; colony; load balancing; failover
1 概述
1.1 背景
隨著社會經(jīng)濟及科學(xué)技術(shù)的飛速發(fā)展,計算機網(wǎng)絡(luò)的逐漸普及,各行業(yè)紛紛在IT建設(shè)方面投入了大量的資金,建立起多種業(yè)務(wù)系統(tǒng)。目前,在構(gòu)建這些業(yè)務(wù)系統(tǒng)時,一般都是采用“獨立解決方案”來實施的。系統(tǒng)之間相互獨立,“各自為政”,缺乏整合,業(yè)務(wù)數(shù)據(jù)交換困難,難以形成有效利用的共享資源。這既不滿足企業(yè)業(yè)務(wù)需要,又彼此間不能互聯(lián),形成了所謂的“信息孤島”。因而需要一個能夠?qū)F(xiàn)有各種業(yè)務(wù)系統(tǒng)進(jìn)行整合的平臺,該平臺向下根據(jù)業(yè)務(wù)能力需要測算運維基礎(chǔ)服務(wù)能力、調(diào)用安全產(chǎn)品、操作系統(tǒng)以及硬件等其他資源,向上為各業(yè)務(wù)系統(tǒng)提供調(diào)度中心等服務(wù),實時監(jiān)控整個網(wǎng)絡(luò)的各種資源、并將這些資源開放給上層資源用戶,來滿足企業(yè)實際工作需要,進(jìn)而使信息化系統(tǒng)在企業(yè)工作中發(fā)揮出更大的效益。
1.2 概述
本文設(shè)計了一種基于PaaS和ESB的分布式集群框架服務(wù)平臺。它是基礎(chǔ)資源和業(yè)務(wù)系統(tǒng)的紐帶,是一種面向基礎(chǔ)設(shè)施架構(gòu)的服務(wù)框架,其核心是基礎(chǔ)資源平臺即服務(wù)(PaaS),并將這些異構(gòu)環(huán)境中的服務(wù)基于中間件技術(shù)進(jìn)行交互(ESB)。在分布式集群所提供的環(huán)境中,各種業(yè)務(wù)應(yīng)用能夠長時間穩(wěn)定高效的運行。該平臺主要提供集群接口服務(wù)、集群共享服務(wù)、集群調(diào)度服務(wù)、集群消息總線、集群自助服務(wù)、集群管理服務(wù)等,平臺服務(wù)框架如圖1所示。
2 關(guān)鍵技術(shù)簡介
2.1 PaaS
PaaS(Platform-as-a-Service),平臺即服務(wù),是一種把服務(wù)器平臺作為服務(wù),提供企業(yè)進(jìn)行定制化研發(fā)的中間件平臺,它能提高Web平臺上利用的資源數(shù)量,將現(xiàn)有各種業(yè)務(wù)能力進(jìn)行整合,向下根據(jù)業(yè)務(wù)能力需要測算基礎(chǔ)服務(wù)能力,通過IaaS提供的API調(diào)用硬件資源,向上提供業(yè)務(wù)調(diào)度中心服務(wù),實時監(jiān)控平臺的各種資源,并將這些資源通過API開放給應(yīng)用軟件用戶。
2.2 ESB
ESB(Enterprise Service Bus)是傳統(tǒng)中間件技術(shù)與XML、Web服務(wù)等技術(shù)相結(jié)合的闡述,用于實現(xiàn)企業(yè)應(yīng)用不同消息和信息的準(zhǔn)確、高效和安全傳遞。它能夠支持服務(wù)注冊以及尋址管理,確保通過企業(yè)總線互連的業(yè)務(wù)流程間的消息正確交付;提供位置透明的路由和定位服務(wù),提供多種消息傳遞形式,支持廣泛使用的傳輸協(xié)議。采用多服務(wù)集成方式,支持服務(wù)和事件管理。
2.3 負(fù)載均衡
負(fù)載均衡技術(shù)是用于解決大量的并發(fā)訪問情況下,將數(shù)據(jù)流量分擔(dān)到多臺節(jié)點設(shè)備上分別處理,減少用戶等待響應(yīng)的時間,它提供了一種廉價又有效的方法擴展網(wǎng)絡(luò)設(shè)備和服務(wù)器的帶寬、增加吞吐量、加強網(wǎng)絡(luò)數(shù)據(jù)處理能力、提高網(wǎng)絡(luò)的靈活性和可用性。
2.4 失效轉(zhuǎn)移
失效轉(zhuǎn)移(failover)是一種通過集群實現(xiàn)的備份操作模式,當(dāng)連接的組件由于各類不可預(yù)測的原因失效或無法工作時,failover模式能夠自動從集群中其他的組件中選擇另一個來代替出現(xiàn)故障的組件。對于希望使系統(tǒng)具有更高的故障容忍力,失效轉(zhuǎn)移(failover)是被經(jīng)常使用的策略。
3 平臺功能設(shè)計與實現(xiàn)
本文在功能上將著重講解本平臺的集群調(diào)度服務(wù)、集群消息總線、集群自助服務(wù)和集群共享服務(wù)等四方面主要功能的設(shè)計思路和實現(xiàn)原理。
3.1 集群調(diào)度服務(wù)
本平臺設(shè)計了一個集群調(diào)度服務(wù)器來扮演平臺指揮官的角色,它能夠做到實時了解平臺上所有服務(wù)模塊和服務(wù)節(jié)點運行狀態(tài),對服務(wù)請求按照一定的策略進(jìn)行均衡分配,避免某個服務(wù)模塊調(diào)用過熱或過冷,滿足外界對平臺服務(wù)的需求。具體實現(xiàn)功能如下:
3.1.1 服務(wù)節(jié)點調(diào)度
分布式集群服務(wù)框架平臺的服務(wù)節(jié)點可以是虛擬機也可以是實體機,并將服務(wù)節(jié)點劃分成集群接口服務(wù)器、集群服務(wù)平臺、分布式文件系統(tǒng)節(jié)點、分布式數(shù)據(jù)庫節(jié)點、集群消息總線服務(wù)器、集群文件鏡像服務(wù)器、集群統(tǒng)一鑒權(quán)服務(wù)器。集群調(diào)度服務(wù)作為整個平臺的調(diào)度中心通過注冊知道每個服務(wù)節(jié)點的類型,只有注冊的服務(wù)節(jié)點才能歸納到整個服務(wù)平臺中來,才能被集群調(diào)度服務(wù)用于提供服務(wù)的一個節(jié)點。
3.1.2 服務(wù)節(jié)點檢測
服務(wù)節(jié)點注冊完畢后,調(diào)度服務(wù)對每個服務(wù)節(jié)點連接狀態(tài)進(jìn)行實時監(jiān)控。如發(fā)現(xiàn)與服務(wù)節(jié)點已經(jīng)失去連接,即對注冊信息進(jìn)行凍結(jié),外部暫時訪問不到該服務(wù)節(jié)點上的服務(wù),同時服務(wù)節(jié)點也會接受到斷開連接的通知進(jìn)行重新連接;如果在規(guī)定時間內(nèi)服務(wù)節(jié)點沒有重新連接到調(diào)度服務(wù)器,調(diào)度服務(wù)器將刪除該服務(wù)節(jié)點的注冊信息,超時后服務(wù)節(jié)點再次連接到調(diào)度服務(wù)器后就是重新注冊的。
3.2 ESB集群消息總線
分布式集群框架服務(wù)平臺內(nèi)部模塊之間的通訊通過設(shè)計實現(xiàn)一種ESB集群消息總線功能來完成。消息總線將各個服務(wù)模塊按照統(tǒng)一的消息協(xié)議連接起來,并在服務(wù)模塊之間傳遞消息,它扮演著一種消息路由的角色,擁有一套完備的路由機制來決定消息傳輸方向。在通信中使用TLS (Transport Layer Security)協(xié)議作為通信通道的加密方法,保證通信的安全。
3.2.1 消息總線負(fù)載均衡
圖2給出了該平臺集群消息總線負(fù)載均衡技術(shù)的工作原理。在消息客戶端和消息服務(wù)器之間,部署一個重定向服務(wù)器,如果消息客戶端希望和消息服務(wù)器建立連接,首先向重定向服務(wù)器發(fā)出連接請求,重定向服務(wù)器根據(jù)預(yù)先配置策略(包括輪詢、權(quán)值、負(fù)載狀況等策略)決定返回最優(yōu)的消息服務(wù)器地址,然后,消息客戶端可以根據(jù)返回的消息服務(wù)器地址,建立與消息服務(wù)器的直接連接,并進(jìn)行消息的傳輸。通過重定向服務(wù)器可以解決大量的并發(fā)訪問情況下,將數(shù)據(jù)流量分擔(dān)到多個消息服務(wù)器上分別處理,增加系統(tǒng)的處理能力,減少用戶等待響應(yīng)的時間。
圖3 消息總線失效轉(zhuǎn)移工作原理
3.2.2 消息總線失效轉(zhuǎn)移
圖3給出了平臺集群消息總線失效轉(zhuǎn)移技術(shù)的工作原理,消息客戶端使用failover模式配置一組消息服務(wù)器地址組成消息服務(wù)器集群,failover協(xié)議首先根據(jù)策略從集群中選擇一個最優(yōu)的消息服務(wù)器并與之建立連接,在消息傳輸過程中,如果該消息服務(wù)器出現(xiàn)故障,能夠自動從其他的消息服務(wù)器地址中選擇另一個來代替出現(xiàn)故障的消息服務(wù)器,實現(xiàn)消息連接的自動遷移,有效保證了系統(tǒng)的穩(wěn)定性和可靠性。
3.2.3 消息總線傳輸方式
消息總線為各個模塊之間的交互提供了一個松耦合的實現(xiàn)方案,例如:在展現(xiàn)門戶、分析服務(wù)器、采集服務(wù)器中傳遞的各類命令、通知、報告等即時信息都可以封裝為消息通過消息服務(wù)器進(jìn)行傳輸,傳輸方式支持消息隊列和主題訂閱兩種模式。其中,消息隊列執(zhí)行路徑如圖4所示。
3.3 集群自助服務(wù)
分布式集群服務(wù)框架平臺設(shè)計了集群自助服務(wù),即服務(wù)提供了一種簡易的編程規(guī)范,開發(fā)人員按照該規(guī)范編寫的程序包就會被平臺所接受,并自動發(fā)布成接口服務(wù)。同時,接口發(fā)布者還可以對接口進(jìn)行開啟、關(guān)閉、調(diào)試、廢棄等操作。而且,平臺用戶還可以對發(fā)布的程序包進(jìn)行版本控制,同時還可以根據(jù)每個程序包的版本來對程序包重新上傳和發(fā)布。在這個過程中,平臺做到了對發(fā)布服務(wù)進(jìn)行全程可視化管理,收集被授權(quán)用戶信息和服務(wù)調(diào)用信息,并以簡潔明了的顯示方式將這些信息提供給服務(wù)發(fā)布者,以便服務(wù)發(fā)布者能對自己的服務(wù)進(jìn)行更好的管理。平臺上的服務(wù)通過Schema和Contract發(fā)布,而不是Class和Type。圖5給出了在平臺上擴展加載監(jiān)控組件所需的配置項。
3.4 集群共享服務(wù)
平臺所提供的集群共享服務(wù),是通過為運維基礎(chǔ)服務(wù)的內(nèi)網(wǎng)安全產(chǎn)品開放了以下接口來實現(xiàn)的:用戶身份認(rèn)證服務(wù)、用戶管理服務(wù)、會話管理服務(wù)、日志管理服務(wù)、訪問控制服務(wù)、監(jiān)控服務(wù)、數(shù)據(jù)源管理服務(wù)、資源管理服務(wù)等。在此給出部分接口相關(guān)實體:
可見,集群共享服務(wù)是本平臺的基礎(chǔ)服務(wù),對平臺用戶、平臺服務(wù)、平臺資源能夠進(jìn)行有效的管理和運作,從而達(dá)到了本平臺的設(shè)計初衷。
4 平臺特性
4.1 分布式運作模式
該平臺上的服務(wù)模塊都不是單一的服務(wù)節(jié)點,而是采用多機組成集群部署來提供服務(wù),并能根據(jù)可用網(wǎng)絡(luò)情況,在多網(wǎng)段進(jìn)行服務(wù)部署。通過分布式運作模式能夠允許系統(tǒng)發(fā)生部分故障,這些故障應(yīng)當(dāng)能被很好地處理而不影響其他不相關(guān)的部分或整個系統(tǒng)。具體該平臺的容錯實現(xiàn)方式如下:在多個節(jié)點或網(wǎng)絡(luò)上提供重復(fù)的服務(wù),讓冗余性有助于將單節(jié)點失敗的影響控制在最小范圍內(nèi),這樣就可以顯著的提高系統(tǒng)在出現(xiàn)部分故障時的可靠性,使整個平臺橫向和豎向擴展成為可能。
4.2 彈性部署方式
分布式集群框架服務(wù)平臺采用彈性部署方式,即默認(rèn)情況下在三個服務(wù)節(jié)點上部署同樣的服務(wù)模塊,每個服務(wù)模塊都具有相對的獨立性,服務(wù)的調(diào)用都依賴調(diào)度中心來分配,每個服務(wù)模塊都有自己獨立的運行環(huán)境,服務(wù)把各自的信息注冊到調(diào)度中心即可,服務(wù)之間沒有直接的聯(lián)系。具體描述為:由分布式集群框架服務(wù)平臺對每個服務(wù)模塊訪問流量進(jìn)行實時監(jiān)控,當(dāng)平臺上的某個服務(wù)在某個時間段內(nèi)訪問突然增加,服務(wù)平臺認(rèn)定在現(xiàn)有的服務(wù)部署狀態(tài)下不能滿足目前的調(diào)用需要,服務(wù)平臺將自動增加該服務(wù)模塊的部署數(shù)量來滿足目前的需求,并能在需要的時候恢復(fù)原來的部署數(shù)量,釋放資源,把資源提供給其他需要擴大部署數(shù)量的服務(wù)。調(diào)用負(fù)荷持續(xù)走低的情況下,集群調(diào)度平臺撤銷掉服務(wù)模塊個數(shù),釋放資源,為其他需要彈性增加服務(wù)模塊的服務(wù)提供硬件資源。服務(wù)平臺會維持每個服務(wù)模塊的最小個數(shù),保證正常的調(diào)用需求。
服務(wù)彈性部署能更好的利用現(xiàn)有硬件資源,滿足平臺用戶的使用要求,保證平臺服務(wù)的正常使用,動態(tài)調(diào)節(jié)資源,各盡其能,按需分配,最大程度的利用好平臺資源。
5 平臺性能指標(biāo)評測
性能Performance用來評測完成服務(wù)請求的速度,用響應(yīng)時間作為度量指標(biāo),該平臺使用集群調(diào)度也使得頁面響應(yīng)速度等更加提升。根據(jù)項目需要,通過使用LoadRunner(業(yè)界公認(rèn)的工業(yè)級標(biāo)準(zhǔn)性能測試負(fù)載測試工具),對該平臺的并發(fā)和頁面響應(yīng)時間進(jìn)行了性能測試。錄制查詢操作腳本,設(shè)置應(yīng)用場景,得到以下性能評測結(jié)果:
系統(tǒng)支持并發(fā)訪問500個(圖7) :加載500并發(fā)用戶操作運行11分41秒,系統(tǒng)沒有失敗和錯誤的事務(wù),正確執(zhí)行了7,777次操作。
系統(tǒng)響應(yīng)客戶端的請求時間小于3秒(圖8) :根據(jù)一般機構(gòu)設(shè)置梯度,加載50并發(fā)用戶對萬條記錄的搜索查詢操作,運行12分31秒,平均響應(yīng)時間為0.025秒。
系統(tǒng)的性能和硬件環(huán)境相關(guān),上述結(jié)果證明,該平臺支持500用戶在線操作,頁面響應(yīng)時間小于參考值。
6 總結(jié)與展望
本文介紹了一種分布式集群框架服務(wù)平臺,它提供平臺級服務(wù),通過ESB消息總線進(jìn)行交互,可擴展性強,能夠在其上發(fā)布多種業(yè)務(wù)應(yīng)用或服務(wù)產(chǎn)品,同時又能夠做到圖形化監(jiān)控、錯誤告警和可管理資源的遠(yuǎn)程配置,很好的充當(dāng)了基礎(chǔ)資源和上層業(yè)務(wù)應(yīng)用的橋梁和紐帶。隨著所集成的業(yè)務(wù)應(yīng)用子系統(tǒng)數(shù)目增多,該平臺的負(fù)載均衡技術(shù)、失效轉(zhuǎn)移技術(shù)和集群技術(shù)等特性效果就更加突出,各子系統(tǒng)通過使用平臺封裝好的各種服務(wù)接口促進(jìn)系統(tǒng)間的信息共享和資源整合,形成一體化平臺。進(jìn)而可以靈活地擴展至豐富的應(yīng)用,具有更加廣闊的推廣前景,這也將是信息化系統(tǒng)集成和發(fā)展的必然趨勢。
下一步將繼續(xù)對調(diào)度算法進(jìn)行優(yōu)化,提高性能,豐富支持的應(yīng)用軟件類型,滿足實際需求。同時增加對平臺本身的安全監(jiān)控,使安全服務(wù)基于統(tǒng)一的目錄體系,面向不同的應(yīng)用提供各種不同安全級別的身份認(rèn)證、資源授權(quán)、數(shù)據(jù)加解密和數(shù)字簽名等功能。
參考文獻(xiàn):
[1] 白俊,王新,耿昕.中小規(guī)模分布式文件系統(tǒng)集群構(gòu)架的優(yōu)化方案[J].武漢工程大學(xué)學(xué)報,2014(1).
[2] 鮑彤,陳維鋒,盧磊.基于Hadoop的分布式集群平臺構(gòu)建方法研究[J].信息通信,2013(8).
[3] 樊偉鈺,朱曉民.一種PaaS系統(tǒng)的數(shù)據(jù)監(jiān)控平臺的設(shè)計方案[J].電信工程技術(shù)與標(biāo)準(zhǔn)化,2013(11).
[4] 徐鵬,陳思,蘇森.互聯(lián)網(wǎng)應(yīng)用PaaS平臺體系結(jié)構(gòu)[J].北京郵電大學(xué)學(xué)報,2012(1).
[5] 陳亮.負(fù)載均衡關(guān)鍵技術(shù)研究[D].長沙:中南大學(xué),2009.