日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 架構師社區(qū)
[導讀]大型網站都要面對龐大的用戶量,高并發(fā),海量數據等挑戰(zhàn)。為了提升系統(tǒng)整體的性能,可以采用垂直擴展和水平擴展兩種方式。

作者:vivo互聯網團隊-Zhang Peng
一、負載均衡簡介
1.1. 大型網站面臨的挑戰(zhàn)
大型網站都要面對龐大的用戶量,高并發(fā),海量數據等挑戰(zhàn)。為了提升系統(tǒng)整體的性能,可以采用垂直擴展和水平擴展兩種方式。
垂直擴展:在網站發(fā)展早期,可以從單機的角度通過增加硬件處理能力,比如 CPU 處理能力,內存容量,磁盤等方面,實現服務器處理能力的提升。但是,單機是有性能瓶頸的,一旦觸及瓶頸,再想提升,付出的成本和代價會極高。這顯然不能滿足大型分布式系統(tǒng)(網站)所有應對的大流量,高并發(fā),海量數據等挑戰(zhàn)。
水平擴展:通過集群來分擔大型網站的流量。集群中的應用服務器(節(jié)點)通常被設計成無狀態(tài),用戶可以請求任何一個節(jié)點,這些節(jié)點共同分擔訪問壓力。水平擴展有兩個要點:
  • 應用集群:將同一應用部署到多臺機器上,組成處理集群,接收負載均衡設備分發(fā)的請求,進行處理,并返回相應數據。
  • 負載均衡:將用戶訪問請求,通過某種算法,分發(fā)到集群中的節(jié)點。
1.2. 什么是負載均衡
負載均衡(Load Balance,簡稱 LB)是高并發(fā)、高可用系統(tǒng)必不可少的關鍵組件,目標是 盡力將網絡流量平均分發(fā)到多個服務器上,以提高系統(tǒng)整體的響應速度和可用性。
負載均衡的主要作用如下:
高并發(fā):負載均衡通過算法調整負載,盡力均勻的分配應用集群中各節(jié)點的工作量,以此提高應用集群的并發(fā)處理能力(吞吐量)。
伸縮性:添加或減少服務器數量,然后由負載均衡進行分發(fā)控制。這使得應用集群具備伸縮性。
高可用:負載均衡器可以監(jiān)控候選服務器,當服務器不可用時,自動跳過,將請求分發(fā)給可用的服務器。這使得應用集群具備高可用的特性。
安全防護:有些負載均衡軟件或硬件提供了安全性功能,如:黑白名單處理、防火墻,防 DDos 攻擊等。
二、負載均衡的分類

支持負載均衡的技術很多,我們可以通過不同維度去進行分類。
2.1 載體維度分類
從支持負載均衡的載體來看,可以將負載均衡分為兩類:硬件負載均衡、軟件負載均衡
2.1.1硬件負載均衡
硬件負載均衡,一般是在定制處理器上運行的獨立負載均衡服務器,價格昂貴,土豪專屬。硬件負載均衡的主流產品有:F5 和 A10。
硬件負載均衡的 優(yōu)點:

  • 功能強大:支持全局負載均衡并提供較全面的、復雜的負載均衡算法。
  • 性能強悍:硬件負載均衡由于是在專用處理器上運行,因此吞吐量大,可支持單機百萬以上的并發(fā)。
  • 安全性高:往往具備防火墻,防 DDos 攻擊等安全功能。

硬件負載均衡的 缺點:
  • 成本昂貴:購買和維護硬件負載均衡的成本都很高。
  • 擴展性差:當訪問量突增時,超過限度不能動態(tài)擴容。
2.1.2 軟件負載均衡
軟件負載均衡,應用最廣泛,無論大公司還是小公司都會使用。軟件負載均衡從軟件層面實現負載均衡,一般可以在任何標準物理設備上運行。
軟件負載均衡的 主流產品 有:Nginx、HAProxy、LVS。
  • LVS 可以作為四層負載均衡器。其負載均衡的性能要優(yōu)于 Nginx。
  • HAProxy 可以作為 HTTP 和 TCP 負載均衡器。
  • Nginx、HAProxy 可以作為四層或七層負載均衡器。
軟件負載均衡的 優(yōu)點:
  • 擴展性好:適應動態(tài)變化,可以通過添加軟件負載均衡實例,動態(tài)擴展到超出初始容量的能力。
  • 成本低廉:軟件負載均衡可以在任何標準物理設備上運行,降低了購買和運維的成本。
軟件負載均衡的 缺點:
  • 性能略差:相比于硬件負載均衡,軟件負載均衡的性能要略低一些。
2.2 網絡通信分類
軟件負載均衡從通信層面來看,又可以分為四層和七層負載均衡。
1) 七層負載均衡:就是可以根據訪問用戶的 HTTP 請求頭、URL 信息將請求轉發(fā)到特定的主機。
  • DNS 重定向
  • HTTP 重定向
  • 反向代理
2) 四層負載均衡:基于 IP 地址和端口進行請求的轉發(fā)。
  • 修改 IP 地址
  • 修改 MAC 地址
2.2.1 DNS 負載均衡
DNS 負載均衡一般用于互聯網公司,復雜的業(yè)務系統(tǒng)不適合使用。大型網站一般使用 DNS 負載均衡作為 第一級負載均衡手段,然后在內部使用其它方式做第二級負載均衡。DNS 負載均衡屬于七層負載均衡。
DNS 即 域名解析服務,是 OSI 第七層網絡協(xié)議。DNS 被設計為一個樹形結構的分布式應用,自上而下依次為:根域名服務器,一級域名服務器,二級域名服務器,... ,本地域名服務器。顯然,如果所有數據都存儲在根域名服務器,那么 DNS 查詢的負載和開銷會非常龐大。
因此,DNS 查詢相對于 DNS 層級結構,是一個逆向的遞歸流程,DNS 客戶端依次請求本地 DNS 服務器,上一級 DNS 服務器,上上一級 DNS 服務器,... ,根 DNS 服務器(又叫權威 DNS 服務器),一旦命中,立即返回。為了減少查詢次數,每一級 DNS 服務器都會設置 DNS 查詢緩存。
DNS 負載均衡的工作原理就是:基于 DNS 查詢緩存,按照負載情況返回不同服務器的 IP 地址。
深入淺出負載均衡
DNS 重定向的 優(yōu)點:
使用簡單:負載均衡工作,交給 DNS 服務器處理,省掉了負載均衡服務器維護的麻煩
提高性能:可以支持基于地址的域名解析,解析成距離用戶最近的服務器地址(類似 CDN 的原理),可以加快訪問速度,改善性能;
DNS 重定向的 缺點:
可用性差:DNS 解析是多級解析,新增/修改 DNS 后,解析時間較長;解析過程中,用戶訪問網站將失??;
擴展性低:DNS 負載均衡的控制權在域名商那里,無法對其做更多的改善和擴展;
維護性差:也不能反映服務器的當前運行狀態(tài);支持的算法少;不能區(qū)分服務器的差異(不能根據系統(tǒng)與服務的狀態(tài)來判斷負載)。
2.2.2 HTTP 負載均衡
HTTP 負載均衡是基于 HTTP 重定向實現的。HTTP 負載均衡屬于七層負載均衡。
HTTP 重定向原理是:根據用戶的 HTTP 請求計算出一個真實的服務器地址,將該服務器地址寫入 HTTP 重定向響應中,返回給瀏覽器,由瀏覽器重新進行訪問。
深入淺出負載均衡
HTTP 重定向的優(yōu)點:方案簡單。
HTTP 重定向的 缺點:
性能較差:每次訪問需要兩次請求服務器,增加了訪問的延遲。
降低搜索排名:使用重定向后,搜索引擎會視為 SEO 作弊。
如果負載均衡器宕機,就無法訪問該站點。
由于其缺點比較明顯,所以這種負載均衡策略實際應用較少。
2.2.3 反向代理負載均衡
反向代理(Reverse Proxy)方式是指以 代理服務器 來接受網絡請求,然后 將請求轉發(fā)給內網中的服務器,并將從內網中的服務器上得到的結果返回給網絡請求的客戶端。反向代理負載均衡屬于七層負載均衡。
反向代理服務的主流產品:Nginx、Apache
正向代理與反向代理有什么區(qū)別?
正向代理:發(fā)生在 客戶端,是由用戶主動發(fā)起的。翻墻軟件就是典型的正向代理,客戶端通過主動訪問代理服務器,讓代理服務器獲得需要的外網數據,然后轉發(fā)回客戶端。
反向代理:發(fā)生在 服務端,用戶不知道代理的存在。
深入淺出負載均衡
反向代理是如何實現負載均衡的呢?以 Nginx 為例,如下所示:
深入淺出負載均衡
首先,在代理服務器上設定好負載均衡規(guī)則。然后,當收到客戶端請求,反向代理服務器攔截指定的域名或 IP 請求,根據負載均衡算法,將請求分發(fā)到候選服務器上。其次,如果某臺候選服務器宕機,反向代理服務器會有容錯處理,比如分發(fā)請求失敗 3 次以上,將請求分發(fā)到其他候選服務器上。
反向代理的 優(yōu)點:
1) 多種負載均衡算法:支持多種負載均衡算法,以應對不同的場景需求。
2) 可以監(jiān)控服務器:基于 HTTP 協(xié)議,可以監(jiān)控轉發(fā)服務器的狀態(tài),如:系統(tǒng)負載、響應時間、是否可用、連接數、流量等,從而根據這些數據調整負載均衡的策略。
反向代理的 缺點:
1) 額外的轉發(fā)開銷:反向代理的轉發(fā)操作本身是有性能開銷的,可能會包括創(chuàng)建連接,等待連接響應,分析響應結果等操作。
2) 增加系統(tǒng)復雜度:反向代理常用于做分布式應用的水平擴展,但反向代理服務存在以下問題,為了解決以下問題會給系統(tǒng)整體增加額外的復雜度和運維成本:
  • 反向代理服務如果自身宕機,就無法訪問站點,所以需要有 高可用 方案,常見的方案有:主備模式(一主一備)、雙主模式(互為主備)。

  • 反向代理服務自身也存在性能瓶頸,隨著需要轉發(fā)的請求量不斷攀升,需要有 可擴展 方案。
2.2.4 IP負載均衡
IP 負載均衡是在網絡層通過修改請求目的地址進行負載均衡。
深入淺出負載均衡
如上圖所示,IP 均衡處理流程大致為:
客戶端請求 192.168.137.10,由負載均衡服務器接收到報文。
負載均衡服務器根據算法選出一個服務節(jié)點 192.168.0.1,然后將報文請求地址改為該節(jié)點的 IP。
真實服務節(jié)點收到請求報文,處理后,返回響應數據到負載均衡服務器。
負載均衡服務器將響應數據的源地址改負載均衡服務器地址,返回給客戶端。
IP 負載均衡在內核進程完成數據分發(fā),較反向代理負載均衡有更好的從處理性能。但是,由于所有請求響應都要經過負載均衡服務器,集群的吞吐量受制于負載均衡服務器的帶寬。
2.2.5 數據鏈路層負載均衡
數據鏈路層負載均衡是指在通信協(xié)議的數據鏈路層修改 mac 地址進行負載均衡。
深入淺出負載均衡
在 Linux 平臺上最好的鏈路層負載均衡開源產品是 LVS (Linux Virtual Server)。LVS 是基于 Linux 內核中 netfilter 框架實現的負載均衡系統(tǒng)。netfilter 是內核態(tài)的 Linux 防火墻機制,可以在數據包流經過程中,根據規(guī)則設置若干個關卡(hook 函數)來執(zhí)行相關的操作。
LVS 的工作流程大致如下:
當用戶訪問 www.sina.com.cn 時,用戶數據通過層層網絡,最后通過交換機進入 LVS 服務器網卡,并進入內核網絡層。
進入 PREROUTING 后經過路由查找,確定訪問的目的 VIP 是本機 IP 地址,所以數據包進入到 INPUT 鏈上
IPVS 是工作在 INPUT 鏈上,會根據訪問的 vip port 判斷請求是否 IPVS 服務,如果是則調用注冊的 IPVS HOOK 函數,進行 IPVS 相關主流程,強行修改數據包的相關數據,并將數據包發(fā)往 POSTROUTING 鏈上。
POSTROUTING 上收到數據包后,根據目標 IP 地址(后端服務器),通過路由選路,將數據包最終發(fā)往后端的服務器上。
開源 LVS 版本有 3 種工作模式,每種模式工作原理截然不同,說各種模式都有自己的優(yōu)缺點,分別適合不同的應用場景,不過最終本質的功能都是能實現均衡的流量調度和良好的擴展性。主要包括三種模式:DR 模式、NAT 模式、Tunnel 模式。
三、負載均衡算法

負載均衡器的實現可以分為兩個部分:

根據負載均衡算法在候選服務器列表選出一個服務器;
將請求數據發(fā)送到該服務器上。
負載均衡算法是負載均衡服務核心中的核心。負載均衡產品多種多樣,但是各種負載均衡算法原理是共性的。負載均衡算法有很多種,分別適用于不同的應用場景,本文僅介紹最為常見的負載均衡算法的特性及原理:輪詢、隨機、最小活躍數、源地址哈希、一致性哈希。
本站聲明: 本文章由作者或相關機構授權發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內容真實性等。需要轉載請聯系該專欄作者,如若文章內容侵犯您的權益,請及時聯系本站刪除。
換一批
延伸閱讀

LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: 驅動電源

在工業(yè)自動化蓬勃發(fā)展的當下,工業(yè)電機作為核心動力設備,其驅動電源的性能直接關系到整個系統(tǒng)的穩(wěn)定性和可靠性。其中,反電動勢抑制與過流保護是驅動電源設計中至關重要的兩個環(huán)節(jié),集成化方案的設計成為提升電機驅動性能的關鍵。

關鍵字: 工業(yè)電機 驅動電源

LED 驅動電源作為 LED 照明系統(tǒng)的 “心臟”,其穩(wěn)定性直接決定了整個照明設備的使用壽命。然而,在實際應用中,LED 驅動電源易損壞的問題卻十分常見,不僅增加了維護成本,還影響了用戶體驗。要解決這一問題,需從設計、生...

關鍵字: 驅動電源 照明系統(tǒng) 散熱

根據LED驅動電源的公式,電感內電流波動大小和電感值成反比,輸出紋波和輸出電容值成反比。所以加大電感值和輸出電容值可以減小紋波。

關鍵字: LED 設計 驅動電源

電動汽車(EV)作為新能源汽車的重要代表,正逐漸成為全球汽車產業(yè)的重要發(fā)展方向。電動汽車的核心技術之一是電機驅動控制系統(tǒng),而絕緣柵雙極型晶體管(IGBT)作為電機驅動系統(tǒng)中的關鍵元件,其性能直接影響到電動汽車的動力性能和...

關鍵字: 電動汽車 新能源 驅動電源

在現代城市建設中,街道及停車場照明作為基礎設施的重要組成部分,其質量和效率直接關系到城市的公共安全、居民生活質量和能源利用效率。隨著科技的進步,高亮度白光發(fā)光二極管(LED)因其獨特的優(yōu)勢逐漸取代傳統(tǒng)光源,成為大功率區(qū)域...

關鍵字: 發(fā)光二極管 驅動電源 LED

LED通用照明設計工程師會遇到許多挑戰(zhàn),如功率密度、功率因數校正(PFC)、空間受限和可靠性等。

關鍵字: LED 驅動電源 功率因數校正

在LED照明技術日益普及的今天,LED驅動電源的電磁干擾(EMI)問題成為了一個不可忽視的挑戰(zhàn)。電磁干擾不僅會影響LED燈具的正常工作,還可能對周圍電子設備造成不利影響,甚至引發(fā)系統(tǒng)故障。因此,采取有效的硬件措施來解決L...

關鍵字: LED照明技術 電磁干擾 驅動電源

開關電源具有效率高的特性,而且開關電源的變壓器體積比串聯穩(wěn)壓型電源的要小得多,電源電路比較整潔,整機重量也有所下降,所以,現在的LED驅動電源

關鍵字: LED 驅動電源 開關電源

LED驅動電源是把電源供應轉換為特定的電壓電流以驅動LED發(fā)光的電壓轉換器,通常情況下:LED驅動電源的輸入包括高壓工頻交流(即市電)、低壓直流、高壓直流、低壓高頻交流(如電子變壓器的輸出)等。

關鍵字: LED 隧道燈 驅動電源
關閉