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