關於負載均衡的詳細介紹(通俗易懂)

2021-09-21 13:29:17 字數 2159 閱讀 9596

能夠徹底的掌握什麼是負載均衡,以及為什麼要使用負載均衡。能夠清楚的理解實現負載均衡的三種方式,以及每種方式的優缺點

一、什麼是負載均衡?為什麼要使用負載均衡?

負載均衡:建立在現有網路結構之上,它提供了一種廉價有效透明的方法擴充套件網路裝置和伺服器的頻寬、增加吞吐量、加強網路資料處理能力、提高網路的靈活性和可用性。

這樣籠統來看,我想有很多人都看不明白,那麼下面我將用大白話給大家介紹一下到底什麼是負載均衡,如果介紹的不好,還請大家見諒。

那麼,有什麼方法能夠解決這個問題呢?答案就是建立乙個集群(就是一群伺服器),通過集群的力量來提高服務端的資料處理能力,因為一台伺服器的處理能力肯定比不上多台伺服器的處理能力。

這樣我們在來描述一下使用者請求頁面的過程:首先使用者在瀏覽器輸入**並按下回車鍵,然後會產生乙個請求,遠方的伺服器會處理這個請求......等等,現在遠方有很多伺服器,到底哪個伺服器來處理這個請求呢,總不能所有的伺服器都處理這個請求吧。哪個伺服器處理這個請求?大家明白了吧,這就是負載均衡所要解決的問題。回到上邊請求頁面的過程,這個請求此時會被一台專門的伺服器來處理,這台伺服器其實就是個集群的老大,他負責把這個請求派給下面哪個小弟(伺服器)來處理,處理完之後返回頁面使用者。當有多個請求同時發生時,集群的老大可以將請求派給不同的小弟,這樣處理的效率就會大幅提公升,充分發揮集群的力量,至於哪個請求到底派給哪個小弟,這就是排程策略的問題了。

好了,到現在大家應該都明白什麼是負載均衡了,為了讓大家印象更加深刻,大家可以看一下下面的圖,便於理解記憶。

負載均衡

二、實現負載均衡的三種方式

1、http重定向實現負載均衡

請求過程:

當使用者向伺服器發起請求時,請求首先被集群排程者(集群老大)截獲;排程者根據某種分配策略,選擇一台伺服器(小弟),並將選中的伺服器的ip位址封裝在http響應訊息頭部的location欄位中,並將響應訊息的狀態碼設為302,最後將這個響應訊息返回給瀏覽器。

當瀏覽器收到響應訊息後,解析location欄位,並向該url發起請求,然後指定的伺服器處理該使用者的請求,最後將結果返回給使用者。

在使用http重定向來實現伺服器集群負載均衡的過程中,需要一台伺服器作為請求排程者。使用者的一項操作需要發起兩次http請求,一次向排程伺服器傳送請求,獲取後端伺服器的ip,第二次向後端伺服器傳送請求,獲取處理結果。

http重定向實現負載均衡

優點:採用http重定向來實現伺服器集群的負載均衡實現起來較為容易,邏輯比較簡單。

缺點:在http重定向方法中,排程伺服器只在客戶端第一次向**發起請求的時候起作用。當排程伺服器向瀏覽器返回響應資訊後,客戶端此後的操作都基於新的url進行的(也就是後端伺服器),此後瀏覽器就不會與排程伺服器產生關係,進而會產生如下幾個問題:

2、dns負載均衡

首先我們要了解一下什麼是dns?

dns的全拼是domain name system,中文也叫做網域名稱伺服器,是負責將網域名稱解析成ip位址的,例如將www.baidu.com這個網域名稱解析成了115.239.211.112,我們訪問www.baidu.com時其實訪問的是115.239.211.112這台伺服器。

請求過程:

當使用者向我們的網域名稱發起請求時,dns伺服器會自動地根據我們事先設定好的排程策略選乙個合適的ip返回給使用者,使用者再向該ip發起請求。

dns負載均衡

優點:缺點:

3、反向**負載均衡

請求過程:

使用者發來的請求都首先要經過反向**伺服器,伺服器根據使用者的請求要麼直接將結果返回給使用者,要麼將請求交給後端伺服器處理,再返回給使用者。

反向**負載均衡

優點:缺點:

通俗易懂的C STL

泛型程式設計 generic programming 是一種語言機制,通過它可以實現乙個標準的容器庫。像類一樣,泛型也是一種抽象資料型別,但是泛型不屬於物件導向,它是物件導向的補充和發展。泛型程式設計在c 上的應用主要體現在兩方面 函式模板和類模板。接下來舉個栗子 csdn部落格 anyway,模板...

JS關於this指向的理解(通俗易懂)

所謂的this指向,就是乙個物件。不同呼叫情況下同乙個this的指向都可能不同,同時我們也可以手動修改this指向。如下圖所示 var a 1var obj functionfn fn 如果在函式呼叫fn 前什麼也沒有,那麼此時的fn內的this window。也就是控制台列印的a為全域性變數中的 ...

通俗易懂的CRC校驗

1.crc校驗原理 crc校驗原理看起來比較複雜,好難懂,因為大多數書上基本上是以二進位制的多項式形式來說明的。其實很簡單的問題,其根本思想就是先在要傳送的幀後面附加乙個數 這個就是用來校驗的校驗碼,但要注意,這裡的數也是二進位制序列的,下同 生成乙個新幀傳送給接收端。當然,這個附加的數不是隨意的,...