從網絡到分布式-負載均衡


網絡並發負載均衡

OSI 七層參考模型

分層模型,每一層實現各自的功能和協議,並完成與相鄰層的接口通訊。OSI 的服務定義詳細說明了各層所提供的服務,某一層的服務就是該層及其下各層的一種能力,通過接口提供給更高一層。各層所提供的服務與這些服務是怎么實現的無關。

  • 應用層:為各種應用程序提供服務
  • 表示層:數據格式轉化、數據加密
  • 會話層:建立、管理和維護會話
  • 傳輸層:定義了一些傳輸數據的協議和端口號
  • 網絡層:IP 選址及路由選擇
  • 數據鏈路層:mac 地址的封裝與解碼。
  • 物理層:定義物理設備標准,如網線接口類型、光纖的接口類型、各種傳輸介質的傳輸速率。主要用於傳輸比特流。

TCP/IP 五層模型

負載均衡

通常是指將請求或者是數據,均勻的分攤到多個操作單元上執行。屬於分而治之的思想。

目的是通過調度集群,達到最佳化資源使用,最大化吞吐率,最小化響應時間,避免單點過載的問題

負載均衡算法

  • 靜態
    • RR:輪詢
    • WRR:權重輪詢
    • DH
    • SH
  • 動態
    • LC:最小連接數法
    • WLC:加權最小連接
    • SED:最短期望延遲
    • NQ:never queue
    • LBLC:基於本地的最小連接
    • 響應速度均衡
    • 處理能力均衡

四層負載均衡

基於傳輸層的負載均衡,代表協議為 TCP/UDP,除了包含 IP 之外,還區分了端口號,主要是通過基於 IP + 端口號進行請求的轉發。

四層負載均衡服務器 LVS

  1. NAT:地址轉換
  2. DR:直接路由
  3. TUN:隧道技術
NAT 地址轉換

原理:IP地址改寫

DR 直接路由

原理:局域網改寫 mac 地址

TUN 隧道技術

原理:IP封裝、跨網段

keepalived

高可用,用於檢測各個節點的狀態,處理單點故障。

若單點 LVS 掛掉,該如何處理,思路:多點,形成集群(分布式)

  • 主備:只有主向外提供服務,備機用於在主機發生故障的時候,提供服務。
  • 主主:同時向外提供服務
  • 主從:兩者相互配合完成工作

keepalived

  1. 監控自己服務
  2. Master通告自己還活着,Backup監聽Master狀態,Master掛了,一堆Backup推舉出一個新的Master
  3. 配置:VIP、添加ipvs、keepalived是有配置文件的
  4. 對后端的Server做監控檢查
  5. keepalived是一個通用的工作,主要作為HA實現:
    Nginx,可以作為公司的負載均衡來使用,Nginx成為了單點故障,也可以用keepalived來解決,只要涉及到一變多的情況,基本都可以使用keepalived來解決。

七層負載均衡

基於應用層的負載均衡,代表協議由 HTTP、DNS 等,可以根據請求的 URL 等進行負載,更加靈活。基於反向代理的負載均衡的 Nginx 就是其代表之一。

普通的四層負載均衡軟件,其實現的功能只是對請求數據包的轉發、傳遞,從負載均衡下的節點服務器來看,接收到的請求還是來自訪問負載均衡器的客戶端的真實用戶,而基於反向代理的負載均衡是,反向代理服務器在接收訪問用戶請求后,會代理用戶重新發起請求代理下的節點服務器,最后把數據返回給客戶端用戶。在節點服務器看來,訪問的節點服務器的客戶端用戶就是反向代理服務器,而非真實的網站訪問用戶。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM