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

歡迎訪問 生活随笔!

生活随笔

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

编程问答

nginx一 之负载均衡介绍

發布時間:2023/12/20 编程问答 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 nginx一 之负载均衡介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

?

什么是負載均衡

?負載均衡的意思是在服務器集群中,需要有一臺服務器作為調度者,客戶端所有的請求都由調度者接收,調度者再根據每臺服務器的負載情況,將請求分配給對應的服務器去處理;

?在這個過程中,調度者如何合理分配任務,保證所有服務器將性能充分發揮,從而保持服務器集群的整體性能最優,這就是負載均衡的問題了。

?

實現方式

?

1、Http重定向


?

過程描述

?當用戶向服務器發起請求時,請求首先被集群調度者截獲;調度者根據某種分配策略,選擇一臺服務器,然后把選擇的服務器IP地址封裝在HTTP響應消息頭的Location字段中,設置響應消息的狀態碼設為302最后將這個響應消息返回給瀏覽器;

當瀏覽器收到響應消息后,解析Location字段,獲取分配服務器的URL并發起請求,然后指定的服務器處理該用戶的請求,?最后將結果返回給用戶。

在使用HTTP重定向來實現服務器集群負載均衡的過程中,需要一臺服務器作為請求調度者。用戶的一項操作需要發起兩次HTTP請求,一次向調度服務器發送請求,獲取后端服務器的IP第二次向后端服務器發送請求,獲取處理結果。

?

?

調度策略

?調度服務器收到用戶的請求后,究竟選擇哪臺后端服務器處理請求,這由調度服務器所使用的調度策略決定。

?

隨機分配策略:

當調度服務器收到用戶請求后,可以隨機決定使用哪臺后端服務器,然后將該服務器的IP封裝在HTTP響應消息的Location屬性中,返回給瀏覽器即可。

? ? ? ? ? ??
輪詢策略(RR):

調度服務器需要維護一個值,用于記錄上次分配的后端服務器的IP。那么當新的請求到來時,調度者將請求依次分配給下一臺服務器。

由于輪詢策略需要調度者維護一個值用于記錄上次分配的服務器IP,因此需要額外的開銷;

此外,由于這個值屬于互斥資源,那么當多個請求同時到來時,為了避免線程的安全問題,因此需要鎖定互斥資源,從而降低了性能。而隨機分配策略不需要維護額外的值,也就不存在線程安全問題,因此性能比輪詢要高。

? ??

?

優缺點分析

優點:

實現簡單,邏輯簡單??

?

缺點:

HTTP重定向方法中,調度服務器只在客戶端第一次向網站發起請求的時候起作用。當調度服務器向瀏覽器返回響應信息后,客戶端此后的操作都基于新的URL進行的(也就是后端服務器),此后瀏覽器就不會與調度服務器產生關系,進而會產生如下幾個問題:

a、不是真正意義上的負載均衡:
由于不同用戶的訪問時間、訪問頁面深度有所不同,從而每個用戶對各自的后端服務器所造成的壓力也不同;而調度服務器在調度時,無法知道當前用戶將會對服務器造成多大的壓力,因此這種方式無法實現真正意義上的負載均衡,只不過是把請求次數平均分配給每臺服務器罷了。

b、無法處理服務器故障:
若分配給該用戶的后端服務器出現故障,并且如果頁面被瀏覽器緩存,那么當用戶再次訪問網站時,請求都會發給出現故障的服務器,從而導致訪問失敗。? ?

?

?

2、DNS


?

什么是DNS

數據包采用IP地址在網絡中傳播,而為了方便用戶記憶,我們使用域名來訪問網站;通過域名訪問網站之前,首先需要將域名解析成IP地址,這個工作是由DNS完成的,也就是域名服務器。DNS服務器有一個天然的優勢,如果一個域名指向了多個IP地址,那么每次進行域名解析時,DNS只要選一個IP返回給用戶,就能夠實現服務器集群的負載均衡。

?

過程描述

首先需要將我們的域名指向多個后端服務器(將一個域名解析到多個IP),再設置一下調度策略,那么我們的準備工作就完成了,接下來的負載均衡就完全由DNS服務器來實現;當用戶向我們的域名發起請求時,DNS服務器會自動地根據我們事先設定好的調度策略選一個合適的IP返回給用戶,用戶再向該IP發起請求。?

?

調度策略

一般DNS提供商會提供一些調度策略供我們選擇,如隨機分配、輪詢、根據請求者的地域分配離他最近的服務器。???

?

優缺點分析

優點:
擴展性好(可以指向多個IP地址,自行解析)
動態DNS可以自動處理服務器故障
配置簡單
吞吐率卓越

缺點:????
不是真正意義上的負載均衡(和HTTP重定向類似)
集群調度權交給了DNS服務器,從而我們沒辦法隨心所欲地控制調度者,沒辦法定制調度策略。

?

?

3、反向代理


?

什么是反向代理

反向代理服務器是一個位于實際服務器之前的服務器,所有向我們網站發來的請求都首先要經過反向代理服務器,那么反向代理服務器就可以充當服務器集群的調度者,它可以根據當前后端服務器的負載情況,將請求轉發給一臺合適的服務器,并將處理結果返回給用戶。?

?

優缺點分析

優點:
隱藏后端服務器;(與HTTP重定向相比,反向代理能夠隱藏后端服務器,所有瀏覽器都不會與后端服務器直接交互,從而能夠確保調度者的控制權,提升集群的整體性能)

故障轉移?(與DNS負載均衡相比,反向代理能夠更快速地移除故障結點。當監控程序發現某一后端服務器出現故障時,能夠及時通知反向代理服務器,并立即將其刪除);

合理分配任務?HTTP重定向和DNS負載均衡都無法實現真正意義上的負載均衡,也就是調度服務器無法根據后端服務器的實際負載情況分配任務,但反向代理服務器支持手動設定每臺后端服務器的權重。我們可以根據服務器的配置設置不同的權重,權重的不同會導致被調度者選中的概率的不同);

缺點:
調度者壓力過大?(由于所有的請求都先由反向代理服務器處理,那么當請求量超過調度服務器的最大負載時,調度服務器的吞吐率降低會直接降低集群的整體性能);

制約擴展(當后端服務器也無法滿足巨大的吞吐量時,就需要增加后端服務器的數量,可沒辦法無限制地增加,因為會受到調度服務器的最大吞吐量的制約);

粘滯會話(反向代理服務器會引起一個問題,若某臺后端服務器處理了用戶的請求,并保存了該用戶的session或存儲了緩存,那么當該用戶再次發送請求時,無法保證該請求仍然由保存了其Session或緩存的服務器處理,若由其他服務器處理,先前的Session或緩存就找不到了);

?

粘滯會話的解決方案?

1、可以修改反向代理服務器的任務分配策略,以用戶IP作為標識較為合適。相同的用戶IP會交由同一臺后端服務器處理,從而就避免了粘滯會話的問題。

2、可以在Cookie中標注請求的服務器ID,當再次提交請求時,調度者將該請求分配給Cookie中標注的服務器處理即可。

轉載于:https://www.cnblogs.com/dahuandan/p/6752615.html

總結

以上是生活随笔為你收集整理的nginx一 之负载均衡介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

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