什么是負載均衡,為什么要做負載均衡?1.背景介紹 我們一般會把多臺機器組成一個集群對外提供服務。然而,我們的網(wǎng)站對外提供的訪問入口都是一個的,比如www.taobao.com。那么當用戶在瀏覽器輸入www.taobao.com的時候如何將用戶的請求分發(fā)到集群中不同的機器上呢,這就是負載均衡在做的事情。 針對以上情況的解決方案: (1) 服務器進行硬件升級:采用高性能服務器替換現(xiàn)有低性能服務器。 該方案的弊端: 高成本:高性能服務器價格昂貴,需要高額成本投入,而原有低性能服務器被閑置,造成資 源浪費。 可擴展性差:每一次業(yè)務量的提升,都將導致再一次硬件升級的高額成本投入,性能再卓越 的設備也無法滿足當前業(yè)務量的發(fā)展趨勢。 無法完全解決現(xiàn)在網(wǎng)絡中面臨的問題:如單點故障問題,服務器資源不夠用問題等。 (2) 組建服務器集群,利用負載均衡技術在服務器集群間進行業(yè)務均衡。 該方案的優(yōu)勢: 低成本 可擴展性:當業(yè)務量增長時,系統(tǒng)可通過增加服務器來滿足需求,且不影響已有業(yè)務,不降 低服務質(zhì)量 高可靠性:單臺服務器故障時,由負載均衡設備將后續(xù)業(yè)務轉(zhuǎn)向其他服務器,不影響后續(xù)業(yè) 務提供,保證業(yè)務不中斷。 負載均衡的作用: 1.解決并發(fā)壓力,提高應用處理性能(增加吞吐量,加強網(wǎng)絡處理能力); 2.提供故障轉(zhuǎn)移,實現(xiàn)高可用; 3.通過添加或減少服務器數(shù)量,提供網(wǎng)站伸縮性(擴展性); 4.安全防護;(負載均衡設備上做一些過濾,黑白名單等處理) 負載均衡分類: 根據(jù)實現(xiàn)技術不同,可分為DNS負載均衡,HTTP負載均衡,IP負載均衡,反向代理負載均衡、鏈路層負載均衡等。 負載均衡算法: 輪詢、 隨機、最少鏈接、Hash(源地址散列)、加權 硬件負載均衡: 采用硬件的方式實現(xiàn)負載均衡,一般是單獨的負載均衡服務器,價格昂貴,一般土豪級公司可以考慮,業(yè)界領先的有兩款,F(xiàn)5和A10。 價格:F5, 15w~55w不等;A10, 55w-100w不等。 優(yōu)點:功能全面支持各層級的負載均衡,支持全面的負載均衡算法,支持全局負載均衡。一般軟件負載均衡支持到5萬級并發(fā)已經(jīng)很困難了,硬件負載均衡可以支持。商用硬件負載均衡穩(wěn)定性高,具備防火墻,防DDOS攻擊等安全功能,提供售后支持。 3.常見問題 怎么配置負載均衡? 負載均衡如何設計服務器負載均衡(Server Load Balancing),其原理是將工作任務相對均衡地分攤到多個節(jié)點(服務器集群)上執(zhí)行,從而提升整個業(yè)務系統(tǒng)的性能。諸如LVS、HA Proxy等開源軟件,可以在現(xiàn)有的網(wǎng)絡基礎架構之上建立負載均衡機制,以滿足業(yè)務增長的需要, 此外,針對互聯(lián)網(wǎng)上有可能影響數(shù)據(jù)傳輸?shù)母鞣N環(huán)節(jié),CDN(Content Delivery Network)內(nèi)容交付網(wǎng)絡的應對方案也適時出現(xiàn)。CDN對網(wǎng)站內(nèi)容的處理,通過讓用戶就近取得所需內(nèi)容,解決 Internet網(wǎng)絡擁擠的狀況,提高用戶訪問網(wǎng)站的響應速度,同時也減輕了網(wǎng)站自身系統(tǒng)的性能壓力 貌似我們已經(jīng)解決了網(wǎng)站發(fā)布所面臨的所有瓶頸了,但是實際上問題遠沒有那么簡單。一方面,對于數(shù)據(jù)交互比較頻繁的動態(tài)內(nèi)容而言,CDN只能在其中心節(jié)點與源數(shù)據(jù)節(jié)點(網(wǎng)站自身系統(tǒng))之間做有限的傳輸優(yōu)化,加速效果遠不如靜態(tài)內(nèi)容做緩存分發(fā)那般明顯。 另一方面,隨著線上業(yè)務、電子商務等領域的Web內(nèi)容呈現(xiàn)日漸豐富,涌現(xiàn)出了愈發(fā)復雜的業(yè)務交付需求,因此,當我們拋開網(wǎng)絡的傳輸質(zhì)量、帶寬擁塞程度等外界因素來看的話,又不得不正視一個問題--影響網(wǎng)站訪問效果的最大瓶頸還是在于源數(shù)據(jù)節(jié)點自身的處理性能。 其性能瓶頸最容易出現(xiàn)在聯(lián)機事務處理(OLTP)的環(huán)節(jié),例如訪問用戶進行條目查閱、訂單確認等場景。產(chǎn)生這種情況的原因在于,網(wǎng)站的運營方出于數(shù)據(jù)安全等因素的考慮,是不可能將后臺數(shù)據(jù)庫等資源完全向CDN服務商開放的。 單臺服務器的處理能力有限,當突發(fā)訪問量驟然增加的時候,其性能就會成為整個系統(tǒng)的瓶頸,導致用戶訪問的響應緩慢甚至網(wǎng)站服務器癱瘓。為了滿足高并發(fā)量訪問的需求,可以通過軟件手段實現(xiàn)服務器集群的多機負載均衡效果 前臺的Web服務器由于有外部的CDN服務作為靜態(tài)內(nèi)容的分流渠道,尚不至于產(chǎn)生明顯的系統(tǒng)瓶頸,而后臺處理動態(tài)內(nèi)容的核心業(yè)務系統(tǒng)就難免會感到壓力巨大了。通常多是利用WebLogic中間件軟件自帶的服務器集群功能來滿足高性能需求,其中一臺WebLogic Server作為管理服務器負責任務調(diào)度,實現(xiàn)負載均衡效果。但是,由于該服務器自身的硬件性能瓶頸,會造成整個系統(tǒng)的聯(lián)機事務處理效率低下;而且由于WebLogic自身設計的當任務量達到一定閥值的時候,即便是升級服務器硬件性能也無法提升其進行負載均衡調(diào)度的能力。 針對上述情況,最好的辦法莫過于采用硬件負載均衡設備,以解決數(shù)據(jù)流量過大、任務負荷過重所產(chǎn)生的系統(tǒng)瓶頸問題。在這一方面,業(yè)內(nèi)知名的硬件廠商有F5、深信服等等。值得一提的是,深信服的應用交付產(chǎn)品除具有傳統(tǒng)負載均衡功能外,其獨有的單邊加速技術,能夠在跨運營商網(wǎng)絡環(huán)境中,通過廣域網(wǎng)傳輸文件及應用的訪問時間減少30%以上,極大提高了用戶體驗。 雖然部署硬件設備意味著一筆額外的開支,但是它給網(wǎng)站的整體業(yè)務系統(tǒng)所帶來的性能提升,卻是傳統(tǒng)的軟件方案所望其項背的。除此之外,專業(yè)的硬件設備所能提供的負載調(diào)度算法和健康檢查機制也更加豐富、全面,有助于進一步提升關鍵業(yè)務發(fā)布的穩(wěn)定性和持久性,這對于高并發(fā)量的大型網(wǎng)站而言是極具價值的。 總結; 當然,對于不同規(guī)模、不同業(yè)務的網(wǎng)站而言,沒有一概而論的設計標準,文中提到的技術手段都有著相應的適用場景,這就需要網(wǎng)站的架構師們做具體的規(guī)劃了。 |
|
|
來自: 幸福帥哥m9cxbe > 《云》