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

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

nginx一 之负载均衡介绍

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

?

什么是負(fù)載均衡

?負(fù)載均衡的意思是在服務(wù)器集群中,需要有一臺(tái)服務(wù)器作為調(diào)度者,客戶端所有的請(qǐng)求都由調(diào)度者接收,調(diào)度者再根據(jù)每臺(tái)服務(wù)器的負(fù)載情況,將請(qǐng)求分配給對(duì)應(yīng)的服務(wù)器去處理;

?在這個(gè)過(guò)程中,調(diào)度者如何合理分配任務(wù),保證所有服務(wù)器將性能充分發(fā)揮,從而保持服務(wù)器集群的整體性能最優(yōu),這就是負(fù)載均衡的問(wèn)題了。

?

實(shí)現(xiàn)方式

?

1、Http重定向


?

過(guò)程描述

?當(dāng)用戶向服務(wù)器發(fā)起請(qǐng)求時(shí),請(qǐng)求首先被集群調(diào)度者截獲;調(diào)度者根據(jù)某種分配策略,選擇一臺(tái)服務(wù)器,然后把選擇的服務(wù)器IP地址封裝在HTTP響應(yīng)消息頭的Location字段中,設(shè)置響應(yīng)消息的狀態(tài)碼設(shè)為302最后將這個(gè)響應(yīng)消息返回給瀏覽器;

當(dāng)瀏覽器收到響應(yīng)消息后,解析Location字段,獲取分配服務(wù)器的URL并發(fā)起請(qǐng)求,然后指定的服務(wù)器處理該用戶的請(qǐng)求,?最后將結(jié)果返回給用戶。

在使用HTTP重定向來(lái)實(shí)現(xiàn)服務(wù)器集群負(fù)載均衡的過(guò)程中,需要一臺(tái)服務(wù)器作為請(qǐng)求調(diào)度者。用戶的一項(xiàng)操作需要發(fā)起兩次HTTP請(qǐng)求,一次向調(diào)度服務(wù)器發(fā)送請(qǐng)求,獲取后端服務(wù)器的IP第二次向后端服務(wù)器發(fā)送請(qǐng)求,獲取處理結(jié)果。

?

?

調(diào)度策略

?調(diào)度服務(wù)器收到用戶的請(qǐng)求后,究竟選擇哪臺(tái)后端服務(wù)器處理請(qǐng)求,這由調(diào)度服務(wù)器所使用的調(diào)度策略決定。

?

隨機(jī)分配策略:

當(dāng)調(diào)度服務(wù)器收到用戶請(qǐng)求后,可以隨機(jī)決定使用哪臺(tái)后端服務(wù)器,然后將該服務(wù)器的IP封裝在HTTP響應(yīng)消息的Location屬性中,返回給瀏覽器即可。

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

調(diào)度服務(wù)器需要維護(hù)一個(gè)值,用于記錄上次分配的后端服務(wù)器的IP。那么當(dāng)新的請(qǐng)求到來(lái)時(shí),調(diào)度者將請(qǐng)求依次分配給下一臺(tái)服務(wù)器。

由于輪詢策略需要調(diào)度者維護(hù)一個(gè)值用于記錄上次分配的服務(wù)器IP,因此需要額外的開銷;

此外,由于這個(gè)值屬于互斥資源,那么當(dāng)多個(gè)請(qǐng)求同時(shí)到來(lái)時(shí),為了避免線程的安全問(wèn)題,因此需要鎖定互斥資源,從而降低了性能。而隨機(jī)分配策略不需要維護(hù)額外的值,也就不存在線程安全問(wèn)題,因此性能比輪詢要高。

? ??

?

優(yōu)缺點(diǎn)分析

優(yōu)點(diǎn):

實(shí)現(xiàn)簡(jiǎn)單,邏輯簡(jiǎn)單??

?

缺點(diǎn):

HTTP重定向方法中,調(diào)度服務(wù)器只在客戶端第一次向網(wǎng)站發(fā)起請(qǐng)求的時(shí)候起作用。當(dāng)調(diào)度服務(wù)器向?yàn)g覽器返回響應(yīng)信息后,客戶端此后的操作都基于新的URL進(jìn)行的(也就是后端服務(wù)器),此后瀏覽器就不會(huì)與調(diào)度服務(wù)器產(chǎn)生關(guān)系,進(jìn)而會(huì)產(chǎn)生如下幾個(gè)問(wèn)題:

a、不是真正意義上的負(fù)載均衡:
由于不同用戶的訪問(wèn)時(shí)間、訪問(wèn)頁(yè)面深度有所不同,從而每個(gè)用戶對(duì)各自的后端服務(wù)器所造成的壓力也不同;而調(diào)度服務(wù)器在調(diào)度時(shí),無(wú)法知道當(dāng)前用戶將會(huì)對(duì)服務(wù)器造成多大的壓力,因此這種方式無(wú)法實(shí)現(xiàn)真正意義上的負(fù)載均衡,只不過(guò)是把請(qǐng)求次數(shù)平均分配給每臺(tái)服務(wù)器罷了。

b、無(wú)法處理服務(wù)器故障:
若分配給該用戶的后端服務(wù)器出現(xiàn)故障,并且如果頁(yè)面被瀏覽器緩存,那么當(dāng)用戶再次訪問(wèn)網(wǎng)站時(shí),請(qǐng)求都會(huì)發(fā)給出現(xiàn)故障的服務(wù)器,從而導(dǎo)致訪問(wèn)失敗。? ?

?

?

2、DNS


?

什么是DNS

數(shù)據(jù)包采用IP地址在網(wǎng)絡(luò)中傳播,而為了方便用戶記憶,我們使用域名來(lái)訪問(wèn)網(wǎng)站;通過(guò)域名訪問(wèn)網(wǎng)站之前,首先需要將域名解析成IP地址,這個(gè)工作是由DNS完成的,也就是域名服務(wù)器。DNS服務(wù)器有一個(gè)天然的優(yōu)勢(shì),如果一個(gè)域名指向了多個(gè)IP地址,那么每次進(jìn)行域名解析時(shí),DNS只要選一個(gè)IP返回給用戶,就能夠?qū)崿F(xiàn)服務(wù)器集群的負(fù)載均衡。

?

過(guò)程描述

首先需要將我們的域名指向多個(gè)后端服務(wù)器(將一個(gè)域名解析到多個(gè)IP),再設(shè)置一下調(diào)度策略,那么我們的準(zhǔn)備工作就完成了,接下來(lái)的負(fù)載均衡就完全由DNS服務(wù)器來(lái)實(shí)現(xiàn);當(dāng)用戶向我們的域名發(fā)起請(qǐng)求時(shí),DNS服務(wù)器會(huì)自動(dòng)地根據(jù)我們事先設(shè)定好的調(diào)度策略選一個(gè)合適的IP返回給用戶,用戶再向該IP發(fā)起請(qǐng)求。?

?

調(diào)度策略

一般DNS提供商會(huì)提供一些調(diào)度策略供我們選擇,如隨機(jī)分配、輪詢、根據(jù)請(qǐng)求者的地域分配離他最近的服務(wù)器。???

?

優(yōu)缺點(diǎn)分析

優(yōu)點(diǎn):
擴(kuò)展性好(可以指向多個(gè)IP地址,自行解析)
動(dòng)態(tài)DNS可以自動(dòng)處理服務(wù)器故障
配置簡(jiǎn)單
吞吐率卓越

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

?

?

3、反向代理


?

什么是反向代理

反向代理服務(wù)器是一個(gè)位于實(shí)際服務(wù)器之前的服務(wù)器,所有向我們網(wǎng)站發(fā)來(lái)的請(qǐng)求都首先要經(jīng)過(guò)反向代理服務(wù)器,那么反向代理服務(wù)器就可以充當(dāng)服務(wù)器集群的調(diào)度者,它可以根據(jù)當(dāng)前后端服務(wù)器的負(fù)載情況,將請(qǐng)求轉(zhuǎn)發(fā)給一臺(tái)合適的服務(wù)器,并將處理結(jié)果返回給用戶。?

?

優(yōu)缺點(diǎn)分析

優(yōu)點(diǎn):
隱藏后端服務(wù)器;(與HTTP重定向相比,反向代理能夠隱藏后端服務(wù)器,所有瀏覽器都不會(huì)與后端服務(wù)器直接交互,從而能夠確保調(diào)度者的控制權(quán),提升集群的整體性能)

故障轉(zhuǎn)移?(與DNS負(fù)載均衡相比,反向代理能夠更快速地移除故障結(jié)點(diǎn)。當(dāng)監(jiān)控程序發(fā)現(xiàn)某一后端服務(wù)器出現(xiàn)故障時(shí),能夠及時(shí)通知反向代理服務(wù)器,并立即將其刪除);

合理分配任務(wù)?HTTP重定向和DNS負(fù)載均衡都無(wú)法實(shí)現(xiàn)真正意義上的負(fù)載均衡,也就是調(diào)度服務(wù)器無(wú)法根據(jù)后端服務(wù)器的實(shí)際負(fù)載情況分配任務(wù),但反向代理服務(wù)器支持手動(dòng)設(shè)定每臺(tái)后端服務(wù)器的權(quán)重。我們可以根據(jù)服務(wù)器的配置設(shè)置不同的權(quán)重,權(quán)重的不同會(huì)導(dǎo)致被調(diào)度者選中的概率的不同);

缺點(diǎn):
調(diào)度者壓力過(guò)大?(由于所有的請(qǐng)求都先由反向代理服務(wù)器處理,那么當(dāng)請(qǐng)求量超過(guò)調(diào)度服務(wù)器的最大負(fù)載時(shí),調(diào)度服務(wù)器的吞吐率降低會(huì)直接降低集群的整體性能);

制約擴(kuò)展(當(dāng)后端服務(wù)器也無(wú)法滿足巨大的吞吐量時(shí),就需要增加后端服務(wù)器的數(shù)量,可沒辦法無(wú)限制地增加,因?yàn)闀?huì)受到調(diào)度服務(wù)器的最大吞吐量的制約);

粘滯會(huì)話(反向代理服務(wù)器會(huì)引起一個(gè)問(wèn)題,若某臺(tái)后端服務(wù)器處理了用戶的請(qǐng)求,并保存了該用戶的session或存儲(chǔ)了緩存,那么當(dāng)該用戶再次發(fā)送請(qǐng)求時(shí),無(wú)法保證該請(qǐng)求仍然由保存了其Session或緩存的服務(wù)器處理,若由其他服務(wù)器處理,先前的Session或緩存就找不到了);

?

粘滯會(huì)話的解決方案?

1、可以修改反向代理服務(wù)器的任務(wù)分配策略,以用戶IP作為標(biāo)識(shí)較為合適。相同的用戶IP會(huì)交由同一臺(tái)后端服務(wù)器處理,從而就避免了粘滯會(huì)話的問(wèn)題。

2、可以在Cookie中標(biāo)注請(qǐng)求的服務(wù)器ID,當(dāng)再次提交請(qǐng)求時(shí),調(diào)度者將該請(qǐng)求分配給Cookie中標(biāo)注的服務(wù)器處理即可。

轉(zhuǎn)載于:https://www.cnblogs.com/dahuandan/p/6752615.html

總結(jié)

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

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。