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