淺析基于發量訪問的網站負載均衡設計
佚名
()互聯網的迅猛發展,改變著我們的工作和生活方式。隨著人們對網絡的依賴越發強烈,不同行業,不同類別的網站也競相上線。對于通過互聯網發布業務的組織機構來說,用戶的粘性在一定程度上受到訪問體驗的影響。尤其是對于地方行業和門戶網站、電子商務網站、論壇等不僅僅是靠流量賺錢的網站,用戶的粘性甚至關系到網站的生存大計。網站擁有的忠誠用戶越多,所銷售的產品、提供的服務就越容易推送出去,網站的回頭率提高了,用戶轉化率才會跟著提升。由此可見,以Web為核心的業務平臺,對于網站的穩定性、持久性等方面,通常都有著比較高的要求。
隨著線上業務的發展,網站面臨高并發訪問和海量數據流的情況屢見不鮮,系統中的各個核心設備所負擔的處理能力和計算強度也會相應增大,使得單一設備根本無法承擔。如果淘汰現有設備去做硬件升級,將造成資源的浪費,而且如果以后面臨業務量的激增,又不得不再次投入高額的硬件升級成本,甚至性能再卓越的設備也不能滿足將來業務量的需求。在此種情況下,單純的網絡架構就顯得捉襟見肘了,而負載均衡機制則應運而生。服務器負載均衡(Server Load Balancing),其原理是將工作任務相對均衡地分攤到多個節點(服務器集群)上執行,從而提升整個業務系統的性能。諸如LVS、HA Proxy等開源軟件,可以在現有的網絡基礎架構之上建立負載均衡機制,以滿足業務增長的需要,對于網站的來說不啻為一種廉價且有效的擴展性選擇。
此外,針對互聯網上有可能影響數據傳輸的各種環節,CDN(Content Delivery Network)內容交付網絡的應對方案也適時出現。CDN對網站內容的處理,主要在于利用緩存技術將靜態內容快速分發至邊緣節點,通過讓用戶就近取得所需內容,解決Internet網絡擁擠的狀況,提高用戶訪問網站的響應速度,同時也減輕了網站自身系統的性能壓力。
現在看來,貌似我們已經解決了網站發布所面臨的所有瓶頸了,但是實際上問題遠沒有那么簡單。一方面,對于數據交互比較頻繁的動態內容而言,CDN只能在其中心節點與源數據節點(網站自身系統)之間做有限的傳輸優化,加速效果遠不如靜態內容做緩存分發那般明顯。另一方面,隨著線上業務、電子商務等領域的Web內容呈現日漸豐富,涌現出了愈發復雜的業務交付需求,這對網站的發布方而言也意味著將面臨更多的挑戰。因此,當我們拋開網絡的傳輸質量、帶寬擁塞程度等外界因素來看的話,又不得不正視一個問題——影響網站訪問效果的最大瓶頸還是在于源數據節點自身的處理性能。
以電子商務網站這種典型的大型高并發訪問量的線上業務為例,其性能瓶頸最容易出現在聯機事務處理(OLTP)的環節,例如訪問用戶進行條目查閱、訂單確認等場景。產生這種情況的原因在于,網站的運營方出于數據安全等因素的考慮,是不可能將后臺數據庫等資源完全向CDN服務商開放的。由此造成,所有涉及到此類動態資源的訪問就會頻繁地經由CDN網絡的邊緣節點上溯到源數據節點(即網站自身系統)來請求實時地響應處理。在保障數據安全性的前提下,要解決網站的性能瓶頸問題,必須提高源數據節點的業務處理效率,因此我們還得從網絡架構的設計著手。前文提到過,單臺服務器的處理能力有限,當突發訪問量驟然增加的時候,其性能就會成為整個系統的瓶頸,導致用戶訪問的響應緩慢甚至網站服務器癱瘓。為了滿足高并發量訪問的需求,可以通過軟件手段實現服務器集群的多機負載均衡效果。然而,這種軟件式的負載均衡有一個不可避免的缺點,那便是系統的穩定性和性能方面受限于軟件所安裝運行的服務器,一旦訪問量過大時,該臺服務器就恰恰成了整個系統的瓶頸所在。
就一個發布線上業務的網站系統而言,前臺的Web服務器由于有外部的CDN服務作為靜態內容的分流渠道,尚不至于產生明顯的系統瓶頸,而后臺處理動態內容的核心業務系統就難免會感到壓力巨大了。具體分析的話,當前的業務系統多采用客戶端——中間件——數據庫的三層結構設計,通常多是利用WebLogic中間件軟件自帶的服務器集群功能來滿足高性能需求,其中一臺WebLogic Server作為管理服務器負責任務調度,實現負載均衡效果。但是,當訪問用戶到達一定數目的時候,由于該服務器自身的硬件性能瓶頸,會造成整個系統的聯機事務處理效率低下;而且由于WebLogic自身設計的原因,當任務量達到一定閥值的時候,即便是升級服務器硬件性能也無法提升其進行負載均衡調度的能力。
針對上述情況,最好的辦法莫過于采用硬件負載均衡設備,以解決數據流量過大、任務負荷過重所產生的系統瓶頸問題。在這一方面,業內知名的硬件廠商有F5、深信服等等。值得一提的是,深信服的應用交付產品除具有傳統負載均衡功能外,其獨有的單邊加速技術,能夠在跨運營商網絡環境中,通過廣域網傳輸文件及應用的訪問時間減少30%以上,極大提高了用戶體驗。雖然部署硬件設備意味著一筆額外的開支,但是它給網站的整體業務系統所帶來的性能提升,卻是傳統的軟件方案所望其項背的。除此之外,專業的硬件設備所能提供的負載調度算法和健康檢查機制也更加豐富、全面,有助于進一步提升關鍵業務發布的穩定性和持久性,這對于高并發量的大型網站而言是極具價值的。當然,對于不同規模、不同業務的網站而言,沒有一概而論的設計標準,文中提到的技術手段都有著相應的適用場景,這就需要網站的架構師們做具體的規劃了。(文/佚名;編選:免費論文下載中心)