国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Linux > 正文

web服務器端負載均衡技術原理解密

2024-08-27 23:59:25
字體:
來源:轉載
供稿:網友

由于現有網絡的各個核心部分隨著業務量的提高,訪問量和數據流量的快速增長,其處理能力和計算強度也相應地增大,使得單一的服務器設備根本無法承擔,所以CDN負載均衡(Load Balance)技術應運而生,現在我們來說說負載均衡技術的基本原理.

1、什么是負載?

負載就是服務器端的“資源”:主要就是CPU和IO,前者適宜于計算密集型的任務,后者則對應數據密集型的任務.

2、負載均衡的前提

就是負載(或者說CPU/IO資源)可以切分,劃分到不同的計算機(或者CPU核)上去.

要做到這一點,首先底層的運算應該是可以中斷并調度的,IO是可以多路擴散的,否則一個簡單的CPU死循環指令this: jmp this(跳回自己)就會讓計算機什么也干不了,而IO嘛,IO要是不停地中斷阻塞了總線,計算機也會一樣啥也干不了(不過正常情況下IO總線沒CPU內部總線快).Vevb.com

3、負載均衡的本質

負載既然可以切分到不同的計算機上去(分布式系統,這些計算機之間的一致性怎么維護、事務ACID性質怎么保持、怎么提高可用性、CAP/BASE是另外的話題),那么剩下來的關鍵是對外部的大規模并發請求做路由了。

首先假設每個請求對應服務器端的一臺計算機處理,如果能夠將外部請求對應的負載比較均勻地分布到各個計算機節點上去,則負載均衡無疑會做得比較成功。

不考慮分布式數據庫的后端技術,則負載均衡的核心就在于路由。這個路由,其實就是一個Hash函數。

函數的輸入是什么呢?所有可供區分的外部用戶請求參數,比如:用戶ID、會話ID、請求參數、網絡層地址,等等。

輸出是什么呢?假設最終處理請求的計算機編號為1到N,則路由Hash函數的輸出就是[1..N]之間的一個整數。

很顯然,如果輸入均勻(隨機),Hash函數可以采取線性Hash運算,就可以確保負載均衡地落在這N個處理節點上,無疑是,輸入有時候可能并不均勻,往往落在某個局部區間的請求過多,這往往會導致熱點/瓶頸,假如這部分不均勻輸入樣本的總數相比總的輸入空間來說不是很大的話,理論上,還是可以找到一個能夠用的非線性Hash算法(比如說SHA1/256之類),使得輸入仍然能夠均勻地落在區間[1..N]上.

4、多層次路由

實際應用中,前述路由Hash運算不是只在一個點上執行,而是可能在多個層次上做,比如說:網絡層LB技術LVS(Linux Virtual Server)、前端代理(帶Round Robin輪詢的HTTP反向代理、數據庫連接驅動代理)、DNS分派

這很容易讓人聯想到神經網絡里的多層前向/反饋網絡(那個深度學習不就是增加中間節點的層次深度嗎),不管怎么說,多層次的路由其實就是數學上的非線性Hash映射。

負載均衡的本質差不多就是這樣,對于實際應用來說,關鍵就在于設計一個Hash函數,使得對于此應用特定的數據而且,能夠做到均勻地分發到后端處理節點上.

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 西乡县| 民权县| 武清区| 谢通门县| 太仆寺旗| 资源县| 浦江县| 东莞市| 扎兰屯市| 内江市| 壤塘县| 临沂市| 西林县| 革吉县| 上思县| 德清县| 黄骅市| 中宁县| 永春县| 南投县| 色达县| 武宁县| 冷水江市| 克东县| 桃源县| 博湖县| 昔阳县| 林周县| 革吉县| 金沙县| 潍坊市| 遂川县| 新余市| 哈巴河县| 墨江| 武汉市| 广饶县| 科技| 乐业县| 和政县| 瑞丽市|