自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

lvs為何不能完全替代DNS輪詢

開發(fā) 開發(fā)工具
“DNS輪詢”究竟是不是過時的技術(shù),是不是可以被其他方案替代,接入層架構(gòu)技術(shù)演進,是本文將要細致討論的內(nèi)容。

上一篇文章“一分鐘了解負載均衡的一切”引起了不少同學(xué)的關(guān)注,評論中大家爭論的比較多的一個技術(shù)點是接入層負載均衡技術(shù),部分同學(xué)持這樣的觀點:

1)nginx前端加入lvs和keepalived可以替代“DNS輪詢”

2)F5能搞定接入層高可用、擴展性、負載均衡,可以替代“DNS輪詢”

“DNS輪詢”究竟是不是過時的技術(shù),是不是可以被其他方案替代,接入層架構(gòu)技術(shù)演進,是本文將要細致討論的內(nèi)容。

一、問題域

nginx、lvs、keepalived、f5、DNS輪詢,每每提到這些技術(shù),往往討論的是接入層的這樣幾個問題:

1)可用性:任何一臺機器掛了,服務(wù)受不受影響

2)擴展性:能否通過增加機器,擴充系統(tǒng)的性能

3)反向代理+負載均衡:請求是否均勻分攤到后端的操作單元執(zhí)行

二、上面那些名詞都是干嘛的

由于每個技術(shù)人的背景和知識域不同,上面那些名詞縮寫(運維的同學(xué)再熟悉不過了),還是花1分鐘簡單說明一下(詳細請自行“百度”):

1)nginx:一個高性能的web-server和實施反向代理的軟件

2)lvs:Linux Virtual Server,使用集群技術(shù),實現(xiàn)在linux操作系統(tǒng)層面的一個高性能、高可用、負載均衡服務(wù)器

3)keepalived:一款用來檢測服務(wù)狀態(tài)存活性的軟件,常用來做高可用

4)f5:一個高性能、高可用、負載均衡的硬件設(shè)備(聽上去和lvs功能差不多?)

5)DNS輪詢:通過在DNS-server上對一個域名設(shè)置多個ip解析,來擴充web-server性能及實施負載均衡的技術(shù)

三、接入層技術(shù)演進

【裸奔時代(0)單機架構(gòu)】

 

裸奔時代的架構(gòu)圖如上:

1)瀏覽器通過DNS-server,域名解析到ip

2)瀏覽器通過ip訪問web-server

缺點:

1)非高可用,web-server掛了整個系統(tǒng)就掛了

2)擴展性差,當吞吐量達到web-server上限時,無法擴容

注:單機不涉及負載均衡的問題

【簡易擴容方案(1)DNS輪詢】

假設(shè)tomcat的吞吐量是1000次每秒,當系統(tǒng)總吞吐量達到3000時,如何擴容是首先要解決的問題,DNS輪詢是一個很容易想到的方案:

 

此時的架構(gòu)圖如上:

1)多部署幾份web-server,1個tomcat抗1000,部署3個tomcat就能抗3000

2)在DNS-server層面,域名每次解析到不同的ip

優(yōu)點:

1)零成本:在DNS-server上多配幾個ip即可,功能也不收費

2)部署簡單:多部署幾個web-server即可,原系統(tǒng)架構(gòu)不需要做任何改造

3)負載均衡:變成了多機,但負載基本是均衡的

缺點:

1)非高可用:DNS-server只負責域名解析ip,這個ip對應(yīng)的服務(wù)是否可用,DNS-server是不保證的,假設(shè)有一個web-server掛了,部分服務(wù)會受到影響

2)擴容非實時:DNS解析有一個生效周期

3)暴露了太多的外網(wǎng)ip

【簡易擴容方案(2)nginx】

tomcat的性能較差,但nginx作為反向代理的性能就強多了,假設(shè)線上跑到1w,就比tomcat高了10倍,可以利用這個特性來做擴容:

 

此時的架構(gòu)圖如上:

1)站點層與瀏覽器層之間加入了一個反向代理層,利用高性能的nginx來做反向代理

2)nginx將http請求分發(fā)給后端多個web-server

優(yōu)點:

1)DNS-server不需要動

2)負載均衡:通過nginx來保證

3)只暴露一個外網(wǎng)ip,nginx->tomcat之間使用內(nèi)網(wǎng)訪問

4)擴容實時:nginx內(nèi)部可控,隨時增加web-server隨時實時擴容

5)能夠保證站點層的可用性:任何一臺tomcat掛了,nginx可以將流量遷移到其他tomcat

缺點:

1)時延增加+架構(gòu)更復(fù)雜了:中間多加了一個反向代理層

2)反向代理層成了單點,非高可用:tomcat掛了不影響服務(wù),nginx掛了怎么辦?

【高可用方案(3)keepalived】

為了解決高可用的問題,keepalived出場了(之前的文章“使用shadow-master保證系統(tǒng)可用性”詳細介紹過):

 

此時:

1)做兩臺nginx組成一個集群,分別部署上keepalived,設(shè)置成相同的虛IP,保證nginx的高可用

2)當一臺nginx掛了,keepalived能夠探測到,并將流量自動遷移到另一臺nginx上,整個過程對調(diào)用方透明

 

優(yōu)點:

1)解決了高可用的問題

缺點:

1)資源利用率只有50%

2)nginx仍然是接入單點,如果接入吞吐量超過的nginx的性能上限怎么辦,例如qps達到了50000咧?

【scale up擴容方案(4)lvs/f5】

nginx畢竟是軟件,性能比tomcat好,但總有個上限,超出了上限,還是扛不住。

lvs就不一樣了,它實施在操作系統(tǒng)層面;f5的性能又更好了,它實施在硬件層面;它們性能比nginx好很多,例如每秒可以抗10w,這樣可以利用他們來擴容,常見的架構(gòu)圖如下:

 

此時:

1)如果通過nginx可以擴展多個tomcat一樣,可以通過lvs來擴展多個nginx

2)通過keepalived+VIP的方案可以保證可用性

99.9999%的公司到這一步基本就能解決接入層高可用、擴展性、負載均衡的問題。

這就***了嘛?還有潛在問題么?

好吧,不管是使用lvs還是f5,這些都是scale up的方案,根本上,lvs/f5還是會有性能上限,假設(shè)每秒能處理10w的請求,一天也只能處理80億的請求(10w秒吞吐量*8w秒),那萬一系統(tǒng)的日PV超過80億怎么辦呢?(好吧,沒幾個公司要考慮這個問題)

【scale out擴容方案(5)DNS輪詢

如之前文章所述,水平擴展,才是解決性能問題的根本方案,能夠通過加機器擴充性能的方案才具備***的擴展性。

facebook,google,baidu的PV是不是超過80億呢,它們的域名只對應(yīng)一個ip么,終點又是起點,還是得通過DNS輪詢來進行擴容:

 

此時:

1)通過DNS輪詢來線性擴展入口lvs層的性能

2)通過keepalived來保證高可用

3)通過lvs來擴展多個nginx

4)通過nginx來做負載均衡,業(yè)務(wù)七層路由

四、結(jié)論

聊了這么多,稍微做一個簡要的總結(jié):

1)接入層架構(gòu)要考慮的問題域為:高可用、擴展性、反向代理+擴展均衡

2)nginx、keepalived、lvs、f5可以很好的解決高可用、擴展性、反向代理+擴展均衡的問題

3)水平擴展scale out是解決擴展性問題的根本方案,DNS輪詢是不能完全被nginx/lvs/f5所替代的

末了,上一篇文章有同學(xué)留言問58到家采用什么方案,58到家目前部署在阿里云上,前端購買了SLB服務(wù)(可以先粗暴的認為是一個lvs+keepalived的高可用負載均衡服務(wù)),后端是nginx+tomcat。

五、挖坑

接入層講了這么多,下一章,準備講講服務(wù)層“異構(gòu)服務(wù)的負載均”(牛逼的機器應(yīng)該分配更多的流量,如何做到?)。

希望大家有收獲,轉(zhuǎn)發(fā)一篇文章只需要3秒鐘,求3秒。

文章轉(zhuǎn)載自微信公眾號“架構(gòu)師之路”

責任編輯:趙寧寧 來源: 架構(gòu)師之路
相關(guān)推薦

2018-12-03 08:42:02

反向代理層DNS輪詢架構(gòu)

2013-07-11 09:20:57

Android開放

2016-05-09 11:57:04

IBM數(shù)據(jù)

2009-05-25 13:50:28

Linux桌面走俏

2011-12-27 10:12:59

SafariChrome

2021-10-12 19:06:16

Windows 11操作系統(tǒng)微軟

2018-08-27 08:55:32

Go JavaScriptKotlin

2009-02-23 10:06:01

2012-10-24 13:33:45

真正的惡作劇從中國泄露

2014-03-11 17:01:33

2024-04-17 16:14:08

云計算

2013-04-01 09:03:50

IT大數(shù)據(jù)IBM

2020-06-12 07:59:54

SSL證書攻擊漏洞

2021-10-14 18:10:01

微軟Windows 11Windows

2015-10-27 10:03:54

AndroidiOS創(chuàng)業(yè)

2021-02-09 08:31:38

線下環(huán)境 stable

2011-08-23 13:34:27

組播路由組播路由

2013-05-30 09:36:08

2017-11-03 09:59:16

Linux文件空間

2022-04-19 07:43:59

微軟Windows 11
點贊
收藏

51CTO技術(shù)棧公眾號