目錄
什么是負載均衡
負載均衡分類
服務(wù)端負載均衡
服務(wù)端負載均衡——軟硬件分類
服務(wù)端負載均衡——OSI模型分類
客戶端負載均衡
負載均衡常見算法
七層負載均衡做法
DNS解析
反向代理
什么是負載均衡
????????將用戶請求分攤(分流)?到不同的服務(wù)器上,提高系統(tǒng)整體并發(fā)能力及可靠性。
負載均衡分類
????????客戶端/服務(wù)端
服務(wù)端負載均衡
????????主要應(yīng)用在系統(tǒng)外部請求和網(wǎng)關(guān)層之間,可以用軟件/硬件來實現(xiàn)
????????Nginx服務(wù)端負載均衡示意圖:
服務(wù)端負載均衡——軟硬件分類
- 硬件負載均衡:可以通過專門的硬件設(shè)備(F5,A10,Array),貴但性能強
- 軟件負載均衡:LVS、Nginx、HAproxy
服務(wù)端負載均衡——OSI模型分類
????????? 二/三/四/七層負載均衡,最常見的為四層和七層
四層:OSI模型的第四層 傳輸層,這一層主要協(xié)議:TCP/UDP,負載均衡器能在這一層看到數(shù)據(jù)包里的源端口地址及目的端口地址,基于這些信息通過負載均衡算法,轉(zhuǎn)發(fā)到后端真實服務(wù)器。LVS(Linux Virtual Server虛擬服務(wù)器,Linux內(nèi)核的4層負載均衡)來做四層負載均衡。
七層:OSI模型的第七層 應(yīng)用層?這一層主要協(xié)議:HTTP? ?負載均衡器會讀取報文數(shù)據(jù),然后根據(jù)讀取的內(nèi)容(如 URL Cookie)做出負載均衡決策。工作中我們常用Nginx來做7層負載均衡。
四層:性能更強
七層:功能更強
客戶端負載均衡
應(yīng)用于系統(tǒng)內(nèi)部的不同服務(wù)間,可以使用現(xiàn)成的負載均衡組件來實現(xiàn)。
客戶端負載均衡器和服務(wù)運行在同一個進程或者說同一個java程序中。
Java領(lǐng)域主流的微服務(wù)框架Dubbo、SpringCloud等都內(nèi)置了開箱即用的客戶端負載均衡實現(xiàn)。Dubbo默認自帶了負載均衡功能;SpringCloud是通過組件形式(如Spring Cloud Load Balancer 、Ribbon)來實現(xiàn)。
?? ??? ?基于Spring Cloud Load Balancer實現(xiàn)的示意圖
負載均衡常見算法
-
隨機法:最簡單粗暴,可設(shè)置權(quán)重
-
輪詢法:可設(shè)置權(quán)重
-
一致性HASH法:相同參數(shù)的請求,總是發(fā)到同一臺服務(wù)器處理
-
最小連接法:監(jiān)控服務(wù)器正在處理的請求連接數(shù),遍歷服務(wù)器節(jié)點并選取其中活動連接數(shù)最小的一臺來響應(yīng)當前請求
七層負載均衡做法
DNS解析
為同一個主機記錄多個IP地址即不同服務(wù)器,當用戶請求域名時,DNS服務(wù)器負責采用輪詢算法返回IP地址,這樣就實現(xiàn)了輪詢版負載均衡。
反向代理
????1. 最常用的反向代理服務(wù)器:NGINX
? ? 2.客戶端 將請求發(fā)送到反向代理服務(wù)器,由反向代理服務(wù)器去選擇目標服務(wù)器。
?? ?3.對外暴露的地址是反向代理服務(wù)器地址(隱藏了真實的ip地址)。
?? ?4.反向代理“代理”的是目標服務(wù)器
文章來源:http://www.zghlxwxcb.cn/news/detail-435220.html
收隊!文章來源地址http://www.zghlxwxcb.cn/news/detail-435220.html
到了這里,關(guān)于高性能:負載均衡的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!