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