面試必問:負(fù)載平衡的3種分類
基于上述需求,我們要使用統(tǒng)一的流量入口來對外提供服務(wù),本質(zhì)上就是需要一個流量調(diào)度器,通過均衡的算法,將用戶大量的請求流量均衡地分發(fā)到集群中不同的服務(wù)器上。這其實就是我們今天要說的負(fù)載均衡。
廣義上的負(fù)載均衡器大概可以分為 3 類,包括:DNS 方式實現(xiàn)負(fù)載均衡、硬件負(fù)載均衡、軟件負(fù)載均衡。
一、DNS 實現(xiàn)負(fù)載均衡
這個負(fù)載均衡時通過DNS來的,因為DNS解析同一個域名可以返回不同的ip。所以例如哈爾濱的人訪問百度就返回距離他近的那個機房的IP,海南的人訪問百度就返回距離他近的那個機房的IP。所以主要是用來實現(xiàn)地理級別的負(fù)載均衡。
DNS 實現(xiàn)負(fù)載均衡是最基礎(chǔ)簡單的方式。一個域名通過 DNS 解析到多個 IP,每個 IP 對應(yīng)不同的服務(wù)器實例,這樣就完成了流量的調(diào)度,雖然沒有使用常規(guī)的負(fù)載均衡器,但實現(xiàn)了簡單的負(fù)載均衡功能。
通過 DNS 實現(xiàn)負(fù)載均衡的方式,最大的優(yōu)點就是實現(xiàn)簡單,成本低,無需自己開發(fā)或維護負(fù)載均衡設(shè)備,不過存在一些缺點:
1、服務(wù)器故障切換延遲大,服務(wù)器升級不方便。我們知道 DNS 與用戶之間是層層的緩存,即便是在故障發(fā)生時及時通過 DNS 修改或摘除故障服務(wù)器,但中間經(jīng)過運營商的 DNS 緩存,且緩存很有可能不遵循 TTL 規(guī)則,導(dǎo)致 DNS 生效時間變得非常緩慢,有時候一天后還會有些許的請求流量。
2、流量調(diào)度不均衡,粒度太粗。DNS 調(diào)度的均衡性,受地區(qū)運營商 LocalDNS 返回 IP 列表的策略有關(guān)系,有的運營商并不會輪詢返回多個不同的 IP 地址。另外,某個運營商 LocalDNS 背后服務(wù)了多少用戶,這也會構(gòu)成流量調(diào)度不均的重要因素。
3、流量分配策略太簡單,支持的算法太少。DNS 一般只支持 rr 的輪詢方式,流量分配策略比較簡單,不支持權(quán)重、Hash 等調(diào)度算法。
4、DNS 支持的 IP 列表有限制。我們知道 DNS 使用 UDP 報文進行信息傳遞,每個 UDP 報文大小受鏈路的 MTU 限制,所以報文中存儲的 IP 地址數(shù)量也是非常有限的,阿里 DNS 系統(tǒng)針對同一個域名支持配置 10 個不同的 IP 地址。
實際上生產(chǎn)環(huán)境中很少使用這種方式來實現(xiàn)負(fù)載均衡,畢竟缺點很明顯。文中之所以描述 DNS 負(fù)載均衡方式,是為了能夠更清楚地解釋負(fù)載均衡的概念。
像 BAT 體量的公司一般會利用 DNS 來實現(xiàn)地理級別的全局負(fù)載均衡,實現(xiàn)就近訪問,提高訪問速度,這種方式一般是入口流量的基礎(chǔ)負(fù)載均衡,下層會有更專業(yè)的負(fù)載均衡設(shè)備實現(xiàn)的負(fù)載架構(gòu)。
二、硬件負(fù)載均衡
硬件負(fù)載均衡就是用一個硬件一個基礎(chǔ)網(wǎng)絡(luò)設(shè)備,類似我們的交換機啊這樣的硬件,來實現(xiàn)負(fù)載均衡。常見的硬件有F5、A10。
這類設(shè)備性能強勁、功能強大,但價格非常昂貴,一般只有土豪公司才會使用此類設(shè)備,中小公司一般負(fù)擔(dān)不起,業(yè)務(wù)量沒那么大,用這些設(shè)備也是挺浪費的。
硬件負(fù)載均衡的優(yōu)點:
功能強大:全面支持各層級的負(fù)載均衡,支持全面的負(fù)載均衡算法。
性能強大:性能遠(yuǎn)超常見的軟件負(fù)載均衡器。
穩(wěn)定性高:商用硬件負(fù)載均衡,經(jīng)過了良好的嚴(yán)格測試,經(jīng)過大規(guī)模使用,穩(wěn)定性高。
安全防護:還具備防火墻、防 DDoS 攻擊等安全功能,以及支持 SNAT 功能。
硬件負(fù)載均衡的缺點也很明顯:
價格貴;
擴展性差,無法進行擴展和定制;
調(diào)試和維護比較麻煩,需要專業(yè)人員。
三、軟件負(fù)載均衡
軟件負(fù)載均衡是最常見的,大小公司都需要用到它。
軟件負(fù)載均衡是通過負(fù)載均衡功能的軟件來實現(xiàn)負(fù)載均衡,常見的軟件有LVS、Nginx、HAProxy。
軟件負(fù)載負(fù)載均衡又分四層和七層負(fù)載均衡,四層負(fù)載均衡就是在網(wǎng)絡(luò)層利用IP地址端口進行請求的轉(zhuǎn)發(fā),基本上就是起個轉(zhuǎn)發(fā)分配作用。而七層負(fù)載均衡就是可以根據(jù)訪問用戶的HTTP請求頭、URL信息將請求轉(zhuǎn)發(fā)到特定的主機。LVS為四層負(fù)載均衡。Nginx、HAProxy可四可七。
軟件負(fù)載均衡的優(yōu)點在于便宜而且簡單靈活,就買個主機,裝下軟件,配置一下就能用了,配置也很簡單對于一般小型企業(yè),或者并發(fā)量不高的企業(yè)來說就夠用了。而且在高峰期時容易擴容。
新網(wǎng)負(fù)載平衡雙機架構(gòu),定時對后端服務(wù)進行健康檢查,自動屏蔽異常實例,保障業(yè)務(wù)連續(xù)性;更低的產(chǎn)品價格保障高性價比,多達(dá)6種型號供您選擇,匹配不同的業(yè)務(wù)情景;分鐘級部署,控制臺簡潔易用,僅需幾步就可完成變配續(xù)費,實現(xiàn)靈活選擇和輕松管理:http://www.xinnet.com/cs/slb.html
聲明:免責(zé)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻自行上傳,本網(wǎng)站不擁有所有權(quán),也不承認(rèn)相關(guān)法律責(zé)任。如果您發(fā)現(xiàn)本社區(qū)中有涉嫌抄襲的內(nèi)容,請發(fā)
送郵件至:operations@xinnet.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,本站將立刻刪除涉嫌侵權(quán)內(nèi)容。本站原創(chuàng)內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時
需注明出處:新網(wǎng)idc知識百科