Linux WEB服務(wù)器集群在電子商務(wù)中的應(yīng)用
[關(guān)鍵詞] 電子商務(wù)Web服務(wù)Linux集群
隨著Internet 和電子商務(wù)的飛速發(fā)展,人們對電子商務(wù)網(wǎng)絡(luò)服務(wù)器訪問需求急劇增加,網(wǎng)絡(luò)服務(wù)器的負載越來越大,采用服務(wù)器集群[1]已成為提高網(wǎng)絡(luò)服務(wù)性能的有效途徑。Web 服務(wù)器集群就是基于集群體系結(jié)構(gòu)的Web 服務(wù)器,它通常由一臺前臺調(diào)度器(FE)和若干臺后臺服務(wù)器(BE)組成,彼此之間通過高性能網(wǎng)絡(luò)或局域網(wǎng)互聯(lián)。整個集群共享一個虛擬IP 地址,集群中只有FE對客戶端可見,集群對客戶端看來就像是一臺高性能的服務(wù)器。所有的客戶請求首先到達FE,由FE 將請求根據(jù)一定的負載平衡算法分發(fā)給BE。BE將處理結(jié)果直接或間接返回給客戶端,這樣使得服務(wù)器處理請求能力成倍增長,Web集群應(yīng)用尤其適合訪問業(yè)務(wù)量大的商業(yè)服務(wù)器。
一、Linux Web集群的體系結(jié)構(gòu)
如圖1所示,一個Linux Web集群系統(tǒng)通常由一臺FE和若干臺BE組成,F(xiàn)E和BE通過局域網(wǎng)互聯(lián)。整個集群共享一個虛擬IP 地址(Virtual IP Address),集群中只有FE對客戶端可見,提高了集群安全性。FE除了要響應(yīng)Web服務(wù)請求外,還要充當(dāng)負載平衡器角色,即根據(jù)調(diào)度算法分配工作給后臺的BE們。商業(yè)服務(wù)器對高可靠性要求高,為了屏蔽FE的失效,需要為它建立一個備份機(Backup)。FE和Backup通過傳送諸如“我活著”這樣的信息來監(jiān)測對方的運行狀況。當(dāng)備份機不能在一定的時間內(nèi)收到這樣的信息時,它就激活相應(yīng)程序,接管FE繼續(xù)提供服務(wù);當(dāng)Backup又從FE那收到“我活著”這樣的信息時,它就使該程序無效,從而釋放IP地址,這樣FE就可以再次進行集群管理了。
圖1Linux web集群體系結(jié)構(gòu)圖
集群中所有角色的計算機都是運行著Linux的普通PC機,大大節(jié)省了硬件成本。集群的使用大大提高了電子商務(wù)系統(tǒng)的吞吐量和性能,并且雙機服務(wù)機制保證了高可靠性。
二、前臺調(diào)度器(FE)的實現(xiàn)技術(shù)
優(yōu)良的調(diào)度技術(shù)是發(fā)揮集群性能的關(guān)鍵,在調(diào)度器的實現(xiàn)技術(shù)中,IP負載均衡技術(shù)是效率最高的。大多數(shù)商品化的IP負載均衡調(diào)度器產(chǎn)品都是使用VS/NAT技術(shù)(Virtual Server via Network Address Translation),如Cisco的LocalDirector,這種方法通過網(wǎng)絡(luò)地址轉(zhuǎn)換(Network Address Translation)將一組服務(wù)器構(gòu)成一個高性能的、高可用的虛擬服務(wù)器。即通過網(wǎng)絡(luò)地址轉(zhuǎn)換,調(diào)度器重寫請求報文的目標地址,根據(jù)預(yù)設(shè)的調(diào)度算法,將請求分派給后臺的真實服務(wù)器;真實服務(wù)器的響應(yīng)報文通過調(diào)度器時,報文的源地址被重寫,再返回給客戶,完成整個負載調(diào)度過程。
針對電子商務(wù)Web服務(wù)的自身特點,調(diào)度算法采用的是基于內(nèi)容的調(diào)度。
在基于IP負載調(diào)度技術(shù)中,當(dāng)一個TCP連接的初始SYN報文到達時,調(diào)度器就選擇一臺服務(wù)器,將報文轉(zhuǎn)發(fā)給它。此后通過查發(fā)報文的IP和TCP報文頭地址,保證此連接的后繼報文被轉(zhuǎn)發(fā)到該服務(wù)器。這樣就要求后臺服務(wù)器組提供相同的服務(wù),不管請求被發(fā)送到哪一臺服務(wù)器,返回結(jié)果都是一樣的。但是,在電子商務(wù)應(yīng)用中后臺服務(wù)器功能不一,有的提供HTML文檔,有的提供CGI、圖片等,這就需要基于內(nèi)容的調(diào)度(Content-Based Scheduling)。有研究表明基于內(nèi)容的調(diào)度能較大幅度的提高Web服務(wù)器集群的性能,減少資源浪費。這是因為:相同頁面的請求被發(fā)送到同一服務(wù)器,可以提高單臺服務(wù)器的Cache命中率。電子商務(wù)WEB訪問流中存在局部性,將相同類型的請求發(fā)送到同一臺服務(wù)器,使得每臺服務(wù)器收到的請求具有更好的相似性,可進一步提高單臺服務(wù)器的Cache命中率。 #p#page_title#e#
圖2 基于內(nèi)容調(diào)度流程圖
基于內(nèi)容調(diào)度的流程如圖2所示。后臺服務(wù)器運行不同類型的服務(wù),如文檔服務(wù),CGI服務(wù),圖片服務(wù)和數(shù)據(jù)庫服務(wù)等。值得一提的是電子商務(wù)70%的業(yè)務(wù)流都是對數(shù)據(jù)庫的訪問,所以數(shù)據(jù)庫服務(wù)器盡可能的采用硬件配置高的機器??蛻羰紫群虵E建立起一條TCP連接,F(xiàn)E收到客戶HTTP請求報文后分析URL內(nèi)容,提取出用于調(diào)度的有關(guān)信息,如html,jpg,gif,cgi等。一旦FE獲得有關(guān)信息,根據(jù)其內(nèi)容來決定哪一個后臺服務(wù)器來處理,再將請求調(diào)度到該服務(wù)器。如圖所示,F(xiàn)E將index.html的處理由請求轉(zhuǎn)發(fā)給文件服務(wù)器BE1處理,BE1處理完成后經(jīng)由FE返回給客戶user1?;趦?nèi)容調(diào)度有效地保證了后臺服務(wù)器間的負載平衡和提高單個服務(wù)器的Cache命中率。
三、 小結(jié)
在網(wǎng)絡(luò)上開展實際電子貿(mào)易和交易業(yè)務(wù),首先要建立電子商務(wù)系統(tǒng),電子商務(wù)系統(tǒng)的核心是建立電子商務(wù)服務(wù)器。傳統(tǒng)的單服務(wù)器模式電子商務(wù)系統(tǒng)很容易過載,越來越難以滿足日益增長的巨大訪問量要求;另一方面昂貴的服務(wù)器硬件也阻礙了電子商務(wù)的應(yīng)用。Linux集群正好解決了這一矛盾,既擴展了服務(wù)性能又滿足了商業(yè)應(yīng)用廉價的要求。隨著Internet和電子商務(wù)的爆炸性增長,Linux web集群的應(yīng)用前景越來越廣闊。