RM新时代网站-首页

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

nginx常見(jiàn)面試題:負(fù)載均衡有哪些算法?

小林coding ? 來(lái)源:小林coding ? 2023-12-07 10:45 ? 次閱讀

大家好,我是小林

很多同學(xué)簡(jiǎn)歷的項(xiàng)目都有用到 nginx,今天我們來(lái)聊聊 nginx 常見(jiàn)的兩個(gè)面試題:

反向代理是什么?

負(fù)載均衡有哪些算法

正向代理和反向代理

2469885e-94a7-11ee-939d-92fbcf53809c.png

圖片

01 正向代理(Forward Proxy)

正向代理是位于用戶設(shè)備和互聯(lián)網(wǎng)之間的服務(wù)器。它代理的是客戶端,是站在用戶一方的。其真實(shí)客戶端對(duì)于服務(wù)器不可見(jiàn)。

正向代理通常用于:

保護(hù)客戶端,隱藏客戶端真實(shí) IP,免受攻擊。

避免網(wǎng)絡(luò)瀏覽限制(科學(xué)上網(wǎng))。

阻止訪問(wèn)某些內(nèi)容。

提高訪問(wèn)速度。通常代理服務(wù)器會(huì)有較大的硬盤(pán)緩沖區(qū),將一些響應(yīng)結(jié)果緩存在服務(wù)器端,以便后續(xù)用戶取用。

02 反向代理(Reverse Proxy)

反向代理是一種服務(wù)器,它接受客戶端的請(qǐng)求,將請(qǐng)求轉(zhuǎn)發(fā)給網(wǎng)絡(luò)服務(wù)器,然后將結(jié)果返回給客戶端,就像代理服務(wù)器處理了請(qǐng)求一樣。

反向代理代理的是服務(wù)器,是和網(wǎng)絡(luò)服務(wù)器站在一方的。其真實(shí)服務(wù)器對(duì)于客戶端不可見(jiàn)。這就是它叫“反向”的原因。

反向代理可用于:

保護(hù)服務(wù)器,隱藏服務(wù)器真實(shí) IP。

負(fù)載均衡,根據(jù)訪問(wèn)流量和服務(wù)器負(fù)載情況,將請(qǐng)求分發(fā)到不同服務(wù)器上。

緩存靜態(tài)內(nèi)容以及部分短時(shí)間的大量動(dòng)態(tài)請(qǐng)求。

作為應(yīng)用層防火墻提供防護(hù)。

加密/解密 SSL 通信。

負(fù)載均衡算法

負(fù)載均衡將網(wǎng)絡(luò)流量或一組任務(wù)以某種算法合理分配給各個(gè)處理節(jié)點(diǎn),使得節(jié)點(diǎn)得到平等的使用,并及時(shí)可靠地返回結(jié)果給用戶。

負(fù)載均衡廣泛應(yīng)用于各種硬件軟件系統(tǒng)中,比如:

根據(jù) IP 地址進(jìn)行網(wǎng)絡(luò)流量負(fù)載均衡。在服務(wù)進(jìn)行維護(hù)時(shí),可以方便將網(wǎng)絡(luò)流量切換到臨時(shí)節(jié)點(diǎn)或降級(jí)的服務(wù)上。

根據(jù) HTTP 頭信息或請(qǐng)求字段進(jìn)行應(yīng)用程序負(fù)載均衡,用戶得到響應(yīng)的時(shí)間更短,并且可以提供分層服務(wù),也方便服務(wù)擴(kuò)容時(shí)加入新的節(jié)點(diǎn)。

CDN 根據(jù)流量的來(lái)源,將流量導(dǎo)入相鄰地區(qū)的服務(wù)器,以獲得更短的響應(yīng)時(shí)間和更高的可用性。

下圖顯示了 6 種常見(jiàn)算法。

2480944a-94a7-11ee-939d-92fbcf53809c.png

圖片

01 靜態(tài)算法

循環(huán)(Round Robin)

客戶端請(qǐng)求按順序發(fā)送到不同的服務(wù)實(shí)例。通常要求服務(wù)是無(wú)狀態(tài)的。這種算法最簡(jiǎn)單,但是也無(wú)法處理某個(gè)節(jié)點(diǎn)變慢或者客戶端操作有連續(xù)性的情況。

粘性循環(huán)(Sticky Round Robin)

這是對(duì)循環(huán)算法的一種改進(jìn)。如果 Alice 的第一個(gè)請(qǐng)求發(fā)送到服務(wù) A,那么接下來(lái)的請(qǐng)求也會(huì)發(fā)送到服務(wù) A。這種負(fù)載均衡可以確保一個(gè)用戶的請(qǐng)求都發(fā)往同一個(gè)服務(wù)節(jié)點(diǎn),適合客戶端操作有連續(xù)性的情況。有時(shí)候該服務(wù)節(jié)點(diǎn)上會(huì)保存該用戶的一些狀態(tài),避免去后端數(shù)據(jù)庫(kù)查詢。

加權(quán)循環(huán)(Weighted Round Robin)

管理員可以指定每個(gè)服務(wù)的權(quán)重。權(quán)重高的服務(wù)會(huì)比其他服務(wù)處理更多請(qǐng)求。

散列(IP/URL Hash)

該算法對(duì)傳入請(qǐng)求的 IP 或 URL 應(yīng)用哈希函數(shù)。根據(jù)哈希函數(shù)的結(jié)果將請(qǐng)求路由到相關(guān)服務(wù)。

02 動(dòng)態(tài)算法

最少連接(Least Connections)

新請(qǐng)求會(huì)發(fā)送到并發(fā)連接最少的服務(wù)節(jié)點(diǎn)。

響應(yīng)時(shí)間最少(Least Time)

新請(qǐng)求會(huì)發(fā)送到響應(yīng)時(shí)間最快的服務(wù)節(jié)點(diǎn)。這樣,某個(gè)服務(wù)節(jié)點(diǎn)變慢就不會(huì)阻塞后續(xù)請(qǐng)求處理了。

審核編輯:黃飛

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 服務(wù)器
    +關(guān)注

    關(guān)注

    12

    文章

    9123

    瀏覽量

    85322
  • 防火墻
    +關(guān)注

    關(guān)注

    0

    文章

    417

    瀏覽量

    35608
  • SSL
    SSL
    +關(guān)注

    關(guān)注

    0

    文章

    125

    瀏覽量

    25737
  • 負(fù)載均衡
    +關(guān)注

    關(guān)注

    0

    文章

    110

    瀏覽量

    12364
  • nginx
    +關(guān)注

    關(guān)注

    0

    文章

    149

    瀏覽量

    12170

原文標(biāo)題:面試官:你背一下負(fù)載均衡算法?

文章出處:【微信號(hào):小林coding,微信公眾號(hào):小林coding】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    常見(jiàn)的嵌入式C語(yǔ)言面試題

    數(shù)組是最基本的數(shù)據(jù)結(jié)構(gòu),關(guān)于數(shù)組的面試題也屢見(jiàn)不鮮,本文羅列了一些常見(jiàn)面試題,僅供參考。目前有以下18道題目。
    發(fā)表于 07-18 10:46 ?815次閱讀

    C/C++程序員應(yīng)聘常見(jiàn)面試題深入解析

    1.引言   本文的寫(xiě)作目的并不在于提供C/C++程序員求職面試指導(dǎo),而旨在從技術(shù)上分析面試題的內(nèi)涵。文中的大多數(shù)面試題來(lái)自各大論壇,部分試題解答也參考了網(wǎng)友的意見(jiàn)。  許多
    發(fā)表于 03-26 10:16

    視頻教程:Java常見(jiàn)面試題目深度解析!

    視頻教程:Java常見(jiàn)面試題目深度解析!Java作為目前比較火的計(jì)算機(jī)語(yǔ)言之一,連續(xù)幾年蟬聯(lián)最受程序員歡迎的計(jì)算機(jī)語(yǔ)言榜首,因此每年新入職Java程序員也數(shù)不勝數(shù)。很多java程序員在學(xué)成之后,會(huì)面
    發(fā)表于 07-11 10:55

    視頻教程:Java常見(jiàn)面試題目深度解析!

    技巧是一項(xiàng)很重要的能力。今天要給大家介紹的是一個(gè)Java常見(jiàn)面試題目深度解析視頻教程,需要的朋友可以看看,希望能幫助到大家!課程目錄:第一節(jié)、 String Stringbuffer
    發(fā)表于 07-29 10:20

    嵌入式工程師常見(jiàn)面試題匯總

    嵌入式工程師常見(jiàn)面試題,看看都會(huì)不!
    發(fā)表于 01-12 07:35

    嵌入式工程師常見(jiàn)面試題

    嵌入式工程師常見(jiàn)面試題,看看都會(huì)不!
    發(fā)表于 02-02 07:42

    單片機(jī)工程師面試題大合集,不看肯定后悔

    單片機(jī)開(kāi)發(fā)常見(jiàn)面試題1.IIC協(xié)議時(shí)序圖?2.冒泡排序下面是最基礎(chǔ)的3.宏定義MIN,得出兩個(gè)數(shù)字的最小值#define MIN(A,B) ((A)
    發(fā)表于 11-22 07:53

    c語(yǔ)言面試題,c++面試題下載

    c語(yǔ)言面試題,c++面試題1. static什么用途?(請(qǐng)至少說(shuō)明兩種) 1) 限制變量的作用域 2) 設(shè)置變量的存儲(chǔ)域 2. 引用與指針什么區(qū)別? 
    發(fā)表于 10-22 11:19 ?5次下載

    c語(yǔ)言面試題

    c語(yǔ)言面試題
    發(fā)表于 11-05 16:48 ?0次下載

    C語(yǔ)言經(jīng)典面試題

    面試題
    發(fā)表于 12-20 22:41 ?0次下載

    C語(yǔ)言經(jīng)典面試題

    C語(yǔ)言 經(jīng)典面試題
    發(fā)表于 01-05 11:27 ?0次下載

    經(jīng)典硬件面試題精選及解答

    經(jīng)典硬件面試題精選及解答
    發(fā)表于 11-29 18:02 ?0次下載

    常見(jiàn)的MySQL高頻面試題

    在各類(lèi)技術(shù)崗位面試中,似乎 MySQL 相關(guān)問(wèn)題經(jīng)常被問(wèn)到。無(wú)論你面試開(kāi)發(fā)崗位或運(yùn)維崗位,總會(huì)問(wèn)幾道數(shù)據(jù)庫(kù)問(wèn)題。經(jīng)常有小伙伴私信我,詢問(wèn)如何應(yīng)對(duì) MySQL 面試題。其實(shí)很多面試題都是
    的頭像 發(fā)表于 02-08 16:05 ?2389次閱讀

    關(guān)于數(shù)組常見(jiàn)面試題

    數(shù)組是最基本的數(shù)據(jù)結(jié)構(gòu),關(guān)于數(shù)組的面試題也屢見(jiàn)不鮮,本文羅列了一些常見(jiàn)面試題,僅供參考。目前有以下18道題目。
    的頭像 發(fā)表于 08-17 09:25 ?1646次閱讀

    【C語(yǔ)言經(jīng)典面試題】static關(guān)鍵字的作用哪些?

    經(jīng)典面試題,必要了解下!
    的頭像 發(fā)表于 10-02 12:00 ?2669次閱讀
    【C語(yǔ)言經(jīng)典<b class='flag-5'>面試題</b>】static關(guān)鍵字的作用<b class='flag-5'>有</b>哪些?
    RM新时代网站-首页