日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

常见互联网slb方案

發布時間:2023/12/14 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 常见互联网slb方案 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

轉自:https://blog.csdn.net/qinglianchen0851/article/details/84306448

僅做個人備份,瀏覽請看原文

目錄

關于負載均衡

常見互聯網slb方案

第一層:客戶端到反向代理層

第二層:反向代理層到站點層

第三層:站點層到服務層

第四層:訪問數據層

數據的均衡

請求的均衡

range水平切分

id哈希水平切分

總結


關于負載均衡

關于負載均衡,其實在網上有許多的定義。而作為云計算的從業者,最經常接觸到的就是云負載均衡SLB,我總結了兩個特點和作用:分流和災備。負載均衡(Load Balance)是分布式系統架構設計中必須考慮的因素之一,它通常是指,將請求/數據均勻分攤到多個操作單元上執行,負載均衡的關鍵在于 分發 !各種負載均衡的算法,也都是為了滿足這個分發二字。

常見互聯網slb方案

?根據上圖,可以分為:

  • 客戶端層
  • 反向代理層
  • 站點層
  • 服務層
  • 數據層

根據請求的自頂向下,每一層上游請求可以調用多個下游服務。根據負載均衡的調度算法,將請求分發給下層的服務。

第一層:客戶端到反向代理層

?客戶端 -> 反向代理層的負載均衡。這里主要是通過 ”DNS輪詢“實現。

通俗來講,即DNS-server對于一個域名設置多個解析IP(這里指負載均衡的IP),這里的主要的算法是利用了”輪詢算法。

第二層:反向代理層到站點層

?

反向代理,即將客戶端的請求轉發到服務器上,然后服務器返回的結果轉發給客戶端。
反向代理層到站點層的負載均衡主要是通過”nginx“本身實現(七層轉發),nginx是泛指反向代理,但是也是應用最廣泛的反向代理服務器。

而轉發的規則(算法),主要是通過修改nginx.conf的配置文件實現:
這里介紹主要幾種算法:

  • 請求輪詢
  • 最少連接數
  • 加權

【畫外音】站點層可以存儲session,但強烈不建議這么做,站點層無狀態是分布式架構設計的基本原則之一,session最好放到數據層存儲。

第三層:站點層到服務層

?

服務層也叫中間層,通過增加抽象,解耦兩個交互的邏輯關系。服務層只提供有限的通用接口,理論上服務集群能夠提供無限性能,性能出現瓶頸,服務層一處集中優化

站點層到服務層的負載均衡,是通過“服務連接池”實現的。
上游連接池會建立與下游服務多個連接,每次請求會“隨機”選取連接來訪問下游服務。除了負載均衡,服務連接池還能夠實現***故障轉移、超時處理、限流限速、ID串行化***等諸多功能。

第四層:訪問數據層

在數據量很大的情況下,由于數據層(db/cache)涉及數據的水平切分,所以數據層的負載均衡更為復雜一些,它分為“數據的均衡”,與“請求的均衡”。

數據的均衡

數據的均衡是指:水平切分后的每個服務(db/cache),數據量是均勻的。

請求的均衡

請求的均衡是指:水平切分后的每個服務(db/cache),請求量是均勻的。

同時,根據水平切分的方式,主要又分為range水平切分和ID哈希水平切分。

range水平切分

?

每一個數據服務,存儲一定范圍的數據:

  • user0服務:存儲uid范圍1-1kw
  • user1服務:存儲uid范圍1kw-2kw

優點:

規則簡單,service只需判斷一下uid范圍就能路由到對應的存儲服務
數據均衡性較好
比較容易擴展,可以隨時加一個uid[2kw,3kw]的數據服務

不足:

請求的負載不一定均衡,一般來說,新注冊的用戶會比老用戶更活躍,大range的服務請求壓力會更大

id哈希水平切分

?每一個數據服務,存儲某個key值hash后的部分數據:
user0服務:存儲偶數uid數據
user1服務:存儲奇數uid數據

優點:

規則簡單,service只需對uid進行hash能路由到對應的存儲服務
數據均衡性較好
請求均勻性較好

不足:

不容易擴展,擴展一個數據服務,hash方法改變時候,可能需要進行數據遷移

總結

負載均衡(Load Balance)是分布式系統架構設計中必須考慮的因素之一,它通常是指,將請求/數據均勻分攤到多個操作單元上執行,其的關鍵在于均勻:

  • 反向代理層的負載均衡,是通過“DNS輪詢”實現的
  • 站點層的負載均衡,是通過“nginx”實現的
  • 服務層的負載均衡,是通過“服務連接池”實現的
  • 數據層的負載均衡,要考慮“數據的均衡”與“請求的均衡”兩個點,常見的方式有“按照范圍水平切分”與“hash水平切分”

總結

以上是生活随笔為你收集整理的常见互联网slb方案的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。