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