成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

“反向代理層”絕不能替代“DNS輪詢”!

開發 開發工具 前端
有朋友問我,DNS輪詢是不是過時的技術了?有了反向代理層(Nginx、LVS、F5等),是不是就不需要DNS輪詢了?然而,反向代理層絕不能替代DNS輪詢!

有朋友問我,DNS輪詢是不是過時的技術了?有了反向代理層(Nginx、LVS、F5等),是不是就不需要DNS輪詢了?

然而,反向代理層絕不能替代DNS輪詢!

[[251284]]

反向代理層有什么用?架構實現時要注意什么?

(1) 作為服務端統一入口,屏蔽后端WEB集群細節,代表整個WEB集群;

畫外音:這就是為啥它叫反向代理。

(2) 保證WEB集群的擴展性,Nginx后端可隨時加WEB實例;

(3) 實施負載均衡,反向代理層會將請求均勻分發給后端WEB集群的每一個實例;

(4) 保證WEB集群的高可用,任何一個WEB實例掛了,服務都不受影響;

(5) 注意自身高可用,防止一臺Nginx掛了,服務端統一入口受影響;

反向代理層還存在啥問題?

反向代理層自身的擴展性問題并沒有得到很好的解決,例如當Nginx成為系統瓶頸的時候,無法擴容。

DNS輪詢如何解決反向代理層的擴展性問題?

通過在DNS-server上對一個域名設置多個IP解析,能夠增加入口Nginx實例個數,起到水平擴容的作用,解決反向代理層的擴展性問題。

因此,反向代理和DNS輪詢并不是互斥的技術,however,這里詳細展開講一下接入層的架構漸進歷程。

裸奔時代(1)單機架構

裸奔時代(1)單機架構

裸奔時代的架構圖如上:

  • 瀏覽器通過DNS-server,域名解析到ip;
  • 瀏覽器通過ip訪問web-server;

缺點:

  • 非高可用,web-server掛了整個系統就掛了;
  • 擴展性差,當吞吐量達到web-server上限時,無法擴容;

畫外音:單機不涉及負載均衡問題。

簡易擴容方案(2)DNS輪詢

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

畫外音:DNS輪詢解決擴展性問題。

此時的架構圖如上:

  • 多部署幾份web-server,1個tomcat抗1000,部署3個tomcat就能抗3000;
  • 在DNS-server層面,域名每次解析到不同的ip;

優點:

  • 零成本:在DNS-server上多配幾個ip即可,功能也不收費;
  • 部署簡單:多部署幾個web-server即可,原系統架構不需要做任何改造;
  • 負載均衡:變成了多機,負載也是均衡的;

缺點:

  • 非高可用:DNS-server只負責域名解析ip,這個ip對應的服務是否可用,DNS-server是不保證的,假設有一個web-server掛了,部分服務會受到影響;
  • 擴容非實時:DNS解析有一個生效周期;
  • 暴露了太多的外網ip;

簡易擴容方案(3)反向代理Nginx

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

此時的架構圖如上:

  • 站點層與瀏覽器層之間加入了一個反向代理層,利用高性能的Nginx來做反向代理;
  • Nginx將http請求分發給后端多個web-server;

優點:

  • DNS-server不需要動;
  • 負載均衡:通過Nginx來保證;
  • 只暴露一個外網ip,Nginx->tomcat之間使用內網訪問;
  • 擴容實時:Nginx內部可控,隨時增加web-server隨時實時擴容;
  • 能夠保證站點層的可用性:任何一臺tomcat掛了,Nginx可以將流量遷移到其他tomcat;

畫外音:反向代理,能夠更實時,更方便的擴容了。

缺點:

  • 時延增加+架構更復雜了:中間多加了一個反向代理層;
  • 反向代理層成了單點,非高可用:tomcat掛了不影響服務,Nginx掛了怎么辦?

高可用方案(4)keepalived

為了解決高可用的問題,keepalived出場了。

  • 做兩臺Nginx組成一個集群,分別部署上keepalived,設置成相同的虛IP,保證Nginx的高可用;
  • 當一臺Nginx掛了,keepalived能夠探測到,并將流量自動遷移到另一臺Nginx上,整個過程對調用方透明;

優點:

  • 解決了高可用的問題;

畫外音:反向代理的高可用也解決了。

缺點:

  • 資源利用率只有50%;
  • Nginx仍然是接入單點,如果接入吞吐量超過的Nginx的性能上限怎么辦,例如qps達到了50000咧?

scale up擴容方案(5)lvs/f5

Nginx是應用軟件,性能比tomcat好,但總有個上限,超出了上限,還是扛不住。

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

  • 如果通過Nginx可以擴展多個tomcat一樣,可以通過lvs來擴展多個Nginx;
  • 通過keepalived+VIP的方案可以保證可用性;

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

畫外音:上游再加一層擴充性能。

***了嘛,還有什么潛在問題?

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

scale out擴容方案(6)DNS輪詢

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

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

畫外音:DNS輪詢解決擴展性問題。

  • 通過DNS輪詢來線性擴展入口lvs層的性能;
  • 通過keepalived來保證高可用;
  • 通過lvs來擴展多個Nginx;
  • 通過Nginx來做負載均衡,業務七層路由;

總結

稍微做一個簡要的總結:

  • 接入層架構要考慮的問題域為:高可用、擴展性、反向代理、負載均衡;
  • Nginx、keepalived、lvs、f5可以很好的解決高可用、擴展性、反向代理、負載均衡的問題;
  • 水平擴展scale out是解決擴展性問題的根本方案,DNS輪詢是不能完全被Nginx/lvs/f5所替代的;

希望大家有收獲。

【本文為51CTO專欄作者“58沈劍”原創稿件,轉載請聯系原作者】

戳這里,看該作者更多好文

責任編輯:趙寧寧 來源: 51CTO專欄
相關推薦

2016-09-22 20:26:09

負載均衡lvsDNS輪詢

2019-08-01 13:02:58

Python數據科學數據

2012-09-17 15:04:00

2011-02-15 10:35:17

2022-07-29 09:54:32

網絡安全地緣沖突

2011-04-26 13:20:09

投影機

2019-10-14 17:08:04

人工智能機器人Facebook

2023-07-18 08:00:00

聊天機器人人工智能

2016-08-24 18:32:16

2025-03-13 13:00:00

架構DNSIP

2023-09-08 00:07:41

2022-07-01 07:33:24

nginx反向代理測試

2017-05-23 16:13:45

2023-12-05 09:14:54

2019-08-26 10:31:12

正向代理反向代理安全

2020-10-22 08:05:46

Nginx

2014-07-31 10:55:08

域名NAT七層

2018-08-07 11:15:48

2024-11-12 12:03:27

2018-11-12 12:17:00

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产视频三级 | 嫩草懂你的影院入口 | 日韩性生活网 | 一级做a爰片性色毛片 | 视频在线一区二区 | 国产精品久久久久久亚洲调教 | 福利片在线 | 午夜看电影在线观看 | 国产精品99久久久久久人 | 亚洲视频二区 | 国产网站在线免费观看 | 91久久网站 | 伊人久久免费视频 | 日日摸夜夜添夜夜添特色大片 | 国产一级片在线播放 | 四虎影院在线观看av | www国产成人免费观看视频,深夜成人网 | 美女精品一区 | 欧美一区二区三区在线视频 | 精品日韩在线 | 日韩国产欧美一区 | 亚洲精品久久久久久首妖 | 91久久| 天天操夜夜艹 | 伊人精品在线 | 久久久精品影院 | 日韩在线日韩 | 久久久www成人免费无遮挡大片 | 欧美精品中文字幕久久二区 | 操久久 | 在线免费国产视频 | 99re热这里只有精品视频 | 三级av在线 | 国产精品久久久久久久久免费高清 | 91精品国产欧美一区二区 | 99精品欧美一区二区三区综合在线 | 精品日韩一区二区 | 亚洲一区二区三区视频在线 | 国产视频观看 | 成人精品视频免费 | 欧美亚洲国产一区二区三区 |