服務器負載均衡的供需關系(實際應用案例)
負載均衡的好處想必各個交易平臺都是有所體會的。面多眾多的訪問者進行數據的操作,如果沒有一個完善的服務器負載均衡方案是不行的。那么,我們現在就來例舉一個實際的應用方案,來認識一下,面對大型交易平臺的服務器負載均衡方案的設計思路是如何的。
美國eBay公司是世界上***的網上交易平臺。據統計,每天有涉及幾千個分類的幾百萬件商品在eBay上銷售;eBay的年增長率達到50%。但是,和快速增長的業務相比,eBay的IT支撐系統的高可用性還相對滯后,其IT系統重構規劃時還確認用戶數據庫有單點故障(SPOF)。為此,eBay采用了F5公司提供的數據庫服務器負載均衡解決方案,不僅使數據庫可用性達到99.9%,而且還實現了在線拓展、高安全和高可管理性,從而解決了eBay的用戶數據庫服務請求的壓力,為其進一步的持續高速發展鋪平了道路;該方案也為電子商務以及其他公共服務行業類的數據庫服務器負載均衡,提供了一個***的成功樣板。
需求及挑戰
問題還得從eBay的數據庫系統說起,eBay擁有30套生產數據庫,全部采用Oracle數據庫,其中包括12數據庫支持“live"項目(Sun480/4500);1個數據庫支持存檔項目(Sun4800);4個數據庫支持客戶數據(Sun4800);2個數據庫支持eBay的反饋系統(Sun480);1個數據庫支持非正常的“cache"數據(Sun4800);其他的數據庫(大部分Sun480class)。同時,采用HitachiSAN建立存儲架構,建立了兩個遠程備份數據庫,并實施實時復制數據到遠程數據庫實現冗災,同時每24小時實施針對數據塊的數據備份。
因此,通過eBay數據庫讀寫的比率分析,可以發現,eBay在數據庫提供服務時,讀和查詢的操作達到530億次,而數據庫寫和更新的操作達到2億次。“讀和查詢"操作與“寫和更新"的比率達到265:1。可見查詢和數據庫讀的操作給數據庫管理系統帶來巨大的壓力。而更為嚴峻的是,eBay年增長率達到50%,這意味著,來自讀和查詢的操作壓力將持續增大,要保證數據庫服務的響應能力和效率,穩定性和安全性,eBay必須采用數據庫服務器的負載均衡解決方案。
但是,由于系統龐大,出于投資保護等考慮,Bay對數據庫服務器的負載均衡解決方案的需求有如下幾個特點:不改變eBay的數據庫體系結構;可用性目標達到99.9%;需承載eBay每年50%的高成長;簡單管理等等。這意味著在不對系統大動干戈的同時,卻革命性地提高其性能,其挑戰不言而喻。
解決方案
針對eBay數據庫服務器負載均衡的需求特點,eBay考慮了三種主要解決方案。1)將數據庫垂直分割,劃分成多層數據庫處理,減輕原來單層數據庫處理數據而形成的瓶頸與可用性問題。但問題:這種方案很難部署,而且也沒有從根本上解決單點故障問題。2)采用OracleOPS/RAC機群解決方案。問題:要求給便數據庫編程代碼,非常難以管理與維護。3)采用F5與SharePlex聯合解決方案。其優點是:簡單管理,不需要改變整個體系結構。
在最初,eBay采用OracleOPS/RAC解決問題。但是后來經過充分論證和探討,最終eBay采用了基于F5/SharePlex的解決方案。F5解決方案是應用類似OPS/RAC,但是卻相對簡單的f5的解決方案,不用改變數據庫體系結構,管理和維護簡單得多。F5解決方案得主要思路是,通過應用將數據庫“讀與查詢"的操作與"寫和更新"的操作導向到分開的“邏輯"數據庫,這些數據庫服務器都單獨配備數據存儲,而沒有采用共享存儲的方式!這樣,F5應用交換機動態的將所有的數據庫"讀與查詢"請求導向到查詢數據庫服務器群中,并智能負載均衡到***的數據庫服務器上。所有的"寫和更新"請求都指向到一個單一的數據庫服務器上,由SeharePlex動態實時將數據記錄復制到"讀與查詢"數據庫服務器群的數據庫中。
這樣,一方面,數據庫服務器群被F5應用交換機虛擬化和集群,變成了一個“池";另一方面,“讀與查詢"的操作,可以根據需要,選擇更高效率得數據庫服務器,從而使“讀與查詢"的操作壓力得到解決。同時,隨著業務的增長,還可以隨時根據客戶業務的壓力在線擴展新的服務器在這個群之中。由于根據以上分析,數據庫讀寫的比例超過260倍,采用這樣的方法,有效解決了數據庫性能和高可用性要求。