作者:ice_image
出處:https://www.cnblogs.com/ice-image/p/14524056.html
網絡并發負載均衡
OSI 七層參考模型
分層模型,每一層實現各自的功能和協議,并完成與相鄰層的接口通訊。OSI 的服務定義詳細說明了各層所提供的服務,某一層的服務就是該層及其下各層的一種能力,通過接口提供給更高一層。各層所提供的服務與這些服務是怎么實現的無關。
- 應用層:為各種應用程序提供服務
- 表示層:數據格式轉化、數據加密
- 會話層:建立、管理和維護會話
- 傳輸層:定義了一些傳輸數據的協議和端口號
- 網絡層:IP 選址及路由選擇
- 數據鏈路層:mac 地址的封裝與解碼。
- 物理層:定義物理設備標準,如網線接口類型、光纖的接口類型、各種傳輸介質的傳輸速率。主要用于傳輸比特流。
TCP/IP 五層模型
負載均衡
通常是指將請求或者是數據,均勻的分攤到多個操作單元上執行。屬于分而治之的思想。
目的是通過調度集群,達到最佳化資源使用,最大化吞吐率,最小化響應時間,避免單點過載的問題
負載均衡算法
- 靜態
- RR:輪詢
- WRR:權重輪詢
- DH
- SH
- 動態
- LC:最小連接數法
- WLC:加權最小連接
- SED:最短期望延遲
- NQ:never queue
- LBLC:基于本地的最小連接
- 響應速度均衡
- 處理能力均衡
四層負載均衡
基于傳輸層的負載均衡,代表協議為 TCP/UDP,除了包含 IP 之外,還區分了端口號,主要是通過基于 IP + 端口號進行請求的轉發。
四層負載均衡服務器 LVS
- NAT:地址轉換
- DR:直接路由
- TUN:隧道技術
NAT 地址轉換
原理:IP地址改寫
DR 直接路由
原理:局域網改寫 mac 地址
TUN 隧道技術
原理:IP封裝、跨網段
keepalived
高可用,用于檢測各個節點的狀態,處理單點故障。
若單點 LVS 掛掉,該如何處理,思路:多點,形成集群(分布式)
- 主備:只有主向外提供服務,備機用于在主機發生故障的時候,提供服務。
- 主主:同時向外提供服務
- 主從:兩者相互配合完成工作
keepalived
- 監控自己服務
- Master通告自己還活著,Backup監聽Master狀態,Master掛了,一堆Backup推舉出一個新的Master
- 配置:VIP、添加ipvs、keepalived是有配置文件的
- 對后端的Server做監控檢查
- keepalived是一個通用的工作,主要作為HA實現:
Nginx,可以作為公司的負載均衡來使用,Nginx成為了單點故障,也可以用keepalived來解決,只要涉及到一變多的情況,基本都可以使用keepalived來解決。
七層負載均衡
基于應用層的負載均衡,代表協議由 HTTP、DNS 等,可以根據請求的 URL 等進行負載,更加靈活。基于反向代理的負載均衡的 Nginx 就是其代表之一。
普通的四層負載均衡軟件,其實現的功能只是對請求數據包的轉發、傳遞,從負載均衡下的節點服務器來看,接收到的請求還是來自訪問負載均衡器的客戶端的真實用戶,而基于反向代理的負載均衡是,反向代理服務器在接收訪問用戶請求后,會代理用戶重新發起請求代理下的節點服務器,最后把數據返回給客戶端用戶。在節點服務器看來,訪問的節點服務器的客戶端用戶就是反向代理服務器,而非真實的網站訪問用戶。
作者:ice_image
出處:https://www.cnblogs.com/ice-image/p/14524056.html