偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

負載均衡 LVS vs Nginx 對比!還傻傻分不清?

開發(fā) 后端
今天總結(jié)一下負載均衡中LVS與Nginx的區(qū)別,好幾篇博文一開始就說LVS是單向的,Nginx是雙向的,我個人認為這是不準確的。

LVS三種模式中,雖然DR模式以及TUN模式只有請求的報文經(jīng)過Director,但是NAT模式,Real Server回復的報文也會經(jīng)過Director Server地址重寫:

首先要清楚的一點是,LVS是一個四層的負載均衡器,雖然是四層,但并沒有TCP握手以及分手,只是偷窺了IP等信息,而Nginx是一個七層的負載均衡器,所以效率勢必比四層的LVS低很多,但是可操作性比LVS高,后面所有的討論都是基于這個區(qū)別。

為什么四層比七層效率高?

四層是TCP層,使用IP+端口四元組的方式。只是修改下IP地址,然后轉(zhuǎn)發(fā)給后端服務器,TCP三次握手是直接和后端連接的。只不過在后端機器上看到的都是與代理機的IP的established而已,LVS中沒有握手。

7層代理則必須要先和代理機三次握手后,才能得到7層(HTT層)的具體內(nèi)容,然后再轉(zhuǎn)發(fā)。意思就是代理機必須要與client和后端的機器都要建立連接。顯然性能不行,但勝在于七層,人工可操作性高,能寫更多的轉(zhuǎn)發(fā)規(guī)則。

Nginx特點

Nginx 專為性能優(yōu)化而開發(fā),性能是其最重要的要求,十分注重效率,有報告 Nginx 能支持高達 50000 個并發(fā)連接數(shù)。

另外,Nginx 系列面試題和答案全部整理好了,微信搜索Java技術棧,在后臺發(fā)送:面試,可以在線閱讀。

正向代理與反向代理

正向代理:局域網(wǎng)中的電腦用戶想要直接訪問服務器是不可行的,服務器可能Hold不住,只能通過代理服務器來訪問,這種代理服務就被稱為正向代理,特點是客戶端知道自己訪問的是代理服務器。

反向代理:客戶端無法感知代理,因為客戶端訪問網(wǎng)絡不需要配置,只要把請求發(fā)送到反向代理服務器,由反向代理服務器去選擇目標服務器獲取數(shù)據(jù),然后再返回到客戶端。

此時反向代理服務器和目標服務器對外就是一個服務器,暴露的是代理服務器地址,隱藏了真實服務器 IP 地址。

想成為架構(gòu)師,這份架構(gòu)師圖譜建議看看,少走彎路。

負載均衡

客戶端發(fā)送多個請求到服務器,服務器處理請求,有一些可能要與數(shù)據(jù)庫進行交互,服務器處理完畢之后,再將結(jié)果返回給客戶端。最新面試題整理好了,大家可以在Java面試庫小程序在線刷題。

普通請求和響應過程如下圖:

但是隨著信息數(shù)量增長,訪問量和數(shù)據(jù)量增長,單臺的Server以及Database就成了系統(tǒng)的瓶頸,這種架構(gòu)無法滿足日益增長的需求,這時候要么提升單機的性能,要么增加服務器的數(shù)量。

關于提升性能,這兒就不贅述,提提如何增加服務器的數(shù)量,構(gòu)建集群,將請求分發(fā)到各個服務器上,將原來請求集中到單個服務器的情況改為請求分發(fā)到多個服務器,也就是我們說的負載均衡。

圖解負載均衡:

關于服務器如何拆分組建集群,這兒主要講講負載均衡,也就是圖上的Proxy,可以是LVS,也可以是Nginx。假設有 15 個請求發(fā)送到代理服務器,那么由代理服務器根據(jù)服務器數(shù)量,這兒假如是平均分配,那么每個服務器處理 5 個請求,這個過程就叫做負載均衡。

動靜分離

為了加快網(wǎng)站的解析速度,可以把動態(tài)頁面和靜態(tài)頁面交給不同的服務器來解析,加快解析的速度,降低由單個服務器的壓力。

點擊關注公眾號,Java干貨及時送達圖片

動靜分離之前的狀態(tài)

動靜分離之后

光看兩張圖可能有人不理解這樣做的意義是什么,我們在進行數(shù)據(jù)請求時,以淘寶購物為例,商品詳情頁有很多東西是動態(tài)的,隨著登錄人員的不同而改變,例如用戶ID,用戶頭像,但是有些內(nèi)容是靜態(tài)的,例如商品詳情頁,那么我們可以通過CDN(全局負載均衡與CDN內(nèi)容分發(fā))將靜態(tài)資源部署在用戶較近的服務器中,用戶數(shù)據(jù)信息安全性要更高,可以放在某處集中,這樣相對于將說有數(shù)據(jù)放在一起,能分擔主服務器的壓力,也能加速商品詳情頁等內(nèi)容傳輸速度。

Nginx的優(yōu)勢

可操作性大

Nginx是一個應用層的程序,所以用戶可操作性的空間大得多,可以作為網(wǎng)頁靜態(tài)服務器,支持 Rewrite 重寫規(guī)則;支持 GZIP 壓縮,節(jié)省帶寬;可以做緩存;可以針對 http 應用本身來做分流策略,靜態(tài)分離,針對域名、目錄結(jié)構(gòu)等相比之下 LVS 并不具備這樣的功能,所以 nginx 單憑這點可以利用的場合就遠多于 LVS 了;但 nginx 有用的這些功能使其可調(diào)整度要高于 LVS,所以經(jīng)常要去觸碰,人為出現(xiàn)問題的幾率也就大

網(wǎng)絡依賴小

nginx 對網(wǎng)絡的依賴較小,理論上只要 ping 得通,網(wǎng)頁訪問正常,nginx 就能連得通,nginx 同時還能區(qū)分內(nèi)外網(wǎng),如果是同時擁有內(nèi)外網(wǎng)的節(jié)點,就相當于單機擁有了備份線路;LVS 就比較依賴于網(wǎng)絡環(huán)境,目前來看服務器在同一網(wǎng)段內(nèi)并且 LVS 使用 direct 方式分流,效果較能得到保證。另外注意,LVS 需要向托管商至少申請多于一個 ip 來做 visual ip

安裝簡單

nginx 安裝和配置比較簡單,測試起來也很方便,因為它基本能把錯誤用日志打印出來。LVS 的安裝和配置、測試就要花比較長的時間,因為同上所述,LVS 對網(wǎng)絡依賴性比較大,很多時候不能配置成功都是因為網(wǎng)絡問題而不是配置問題,出了問題要解決也相應的會麻煩的多

nginx 也同樣能承受很高負載且穩(wěn)定,但負載度和穩(wěn)定度差 LVS 還有幾個等級:nginx 處理所有流量所以受限于機器 IO 和配置;本身的 bug 也還是難以避免的;nginx 沒有現(xiàn)成的雙機熱備方案,所以跑在單機上還是風險比較大,單機上的事情全都很難說

支持健康檢查以及請求重發(fā)

nginx 可以檢測到服務器內(nèi)部的故障(健康檢查),比如根據(jù)服務器處理網(wǎng)頁返回的狀態(tài)碼、超時等等,并且會把返回錯誤的請求重新提交到另一個節(jié)點。目前 LVS 中 ldirectd 也能支持針對服務器內(nèi)部的情況來監(jiān)控,但 LVS 的原理使其不能重發(fā)請求。比如用戶正在上傳一個文件,而處理該上傳的節(jié)點剛好在上傳過程中出現(xiàn)故障,nginx 會把上傳切到另一臺服務器重新處理,而 LVS 就直接斷掉了。

最新面試題整理好了,大家可以在Java面試庫小程序在線刷題。

LVS 的優(yōu)勢

抗負載能力強

因為 LVS 工作方式的邏輯是非常簡單的,而且工作在網(wǎng)絡的第 4 層,僅作請求分發(fā)用,沒有流量,所以在效率上基本不需要太過考慮。LVS 一般很少出現(xiàn)故障,即使出現(xiàn)故障一般也是其他地方(如內(nèi)存、CPU 等)出現(xiàn)問題導致 LVS 出現(xiàn)問題

配置性低

這通常是一大劣勢同時也是一大優(yōu)勢,因為沒有太多的可配置的選項,所以除了增減服務器,并不需要經(jīng)常去觸碰它,大大減少了人為出錯的幾率

工作穩(wěn)定

因為其本身抗負載能力很強,所以穩(wěn)定性高也是順理成章的事,另外各種 LVS 都有完整的雙機熱備方案,所以一點不用擔心均衡器本身會出什么問題,節(jié)點出現(xiàn)故障的話,LVS 會自動判別,所以系統(tǒng)整體是非常穩(wěn)定的

無流量

LVS 僅僅分發(fā)請求,而流量并不從它本身出去,所以可以利用它這點來做一些線路分流之用。沒有流量同時也保住了均衡器的 IO 性能不會受到大流量的影響

LVS 基本上能支持所有應用,因為 LVS 工作在第 4 層,所以它可以對幾乎所有應用做負載均衡,包括 http、數(shù)據(jù)庫、聊天室等。

責任編輯:龐桂玉 來源: Java技術棧
相關推薦

2019-06-18 09:45:19

正向代理反向代理IT

2021-08-04 09:00:55

閉包Go調(diào)用

2021-02-25 23:40:26

Redis集群架構(gòu)

2022-05-05 13:54:37

SPI機制APISPI

2021-01-13 08:10:26

接口IEnumeratorIEnumerable

2021-03-10 08:56:37

Zookeeper

2021-01-22 08:37:02

二進制Binary SemaReentrant L

2021-03-23 10:45:23

CookieSession前端

2021-05-09 21:57:08

數(shù)據(jù)倉庫Olap

2021-10-06 23:31:45

HibernateJPASpring Data

2024-02-29 09:08:56

Encoding算法加密

2021-08-02 12:50:45

sessiontokenJava

2022-05-15 21:52:04

typeTypeScriptinterface

2021-07-27 07:31:16

JavaArrayList數(shù)組

2011-12-02 22:51:46

Nginx負載均衡

2018-12-17 12:30:05

Kubernetes存儲存儲卷

2020-10-30 08:20:04

SD卡TF卡存儲

2025-05-13 03:00:00

NginxLVSHAProxy

2019-11-07 09:57:47

架構(gòu)運維技術

2023-09-03 21:18:07

Python編程語言
點贊
收藏

51CTO技術棧公眾號