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

互聯網架構“高并發”到底怎么玩?

開發 開發工具 前端
最近留言問“高并發”的朋友頗多,公眾號又不支持歷史文章檢索,故重新優化發布,希望大家有收獲。

最近留言問“高并發”的朋友頗多,公眾號又不支持歷史文章檢索,故重新優化發布,希望大家有收獲。

[[261986]]

什么是高并發?

高并發(High Concurrency)是互聯網分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時并行處理很多請求。

高并發相關的常見指標有哪些?

  • 響應時間(Response Time)
  • 吞吐量(Throughput)
  • 每秒查詢率QPS(Query Per Second)
  • 并發用戶數

什么是響應時間?

系統對請求做出響應的時間。

例如:系統處理一個HTTP請求需要200ms,這個200ms就是系統的響應時間。

什么是吞吐量?

單位時間內處理的請求數量。

什么是QPS?

每秒響應請求數。在互聯網領域,這個指標和吞吐量區分的沒有這么明顯。

什么是并發用戶數?

同時承載正常使用系統功能的用戶數量。

例如:一個即時通訊系統,同時在線量一定程度上代表了系統的并發用戶數。

如何提升系統的并發能力?

互聯網分布式架構設計,提高系統并發能力的方式,方法論上主要有兩種:

  • 垂直擴展(Scale Up)
  • 水平擴展(Scale Out)

什么是垂直擴展?

垂直擴展是指,提升單機處理能力,垂直擴展的方式又有兩種:

  • 增強單機硬件性能,例如:增加CPU核數如32核,升級更好的網卡如萬兆,升級更好的硬盤如SSD,擴充硬盤容量如2T,擴充系統內存如128G;
  • 提升單機架構性能,例如:使用Cache來減少IO次數,使用異步來增加單服務吞吐量,使用無鎖數據結構來減少響應時間;

畫外音:在互聯網業務發展非常迅猛的早期,如果預算不是問題,強烈建議使用“增強單機硬件性能”的方式提升系統并發能力,因為這個階段,公司的戰略往往是發展業務搶時間,而“增強單機硬件性能”往往是最快的方法。

垂直擴展有什么瓶頸?

不管是提升單機硬件性能,還是提升單機架構性能,都有一個致命的不足:單機性能總是有極限的。

如何突破單機的極限?

互聯網分布式架構設計,高并發***解決方案還是水平擴展。

什么是水平擴展?

只要增加服務器數量,就能線性擴充系統性能。

常見的互聯網分層架構如何?

各層該如何落地水平擴展?

常見互聯網分布式架構如上,分為:

  • 客戶端層:典型調用方是瀏覽器browser或者手機應用APP;
  • 反向代理層:系統入口,反向代理;
  • 站點應用層:實現核心應用邏輯,返回html或者json;
  • 服務層:如果實現了服務化,就有這一層;
  • 數據-緩存層:緩存加速訪問存儲;
  • 數據-數據庫層:數據庫固化數據存儲;

要想真個系統支持水平擴展,就必須每一層都支持水平擴展。

反向代理層如何進行水平擴展?

 

反向代理層的水平擴展,是通過“DNS輪詢”實現的:dns-server對于一個域名配置了多個解析ip,每次DNS解析請求來訪問dns-server,會輪詢返回這些ip。

當nginx成為瓶頸的時候,只要增加服務器數量,新增nginx服務的部署,增加一個外網ip,就能擴展反向代理層的性能,做到理論上的***高并發。

站點層如何進行水平擴展?

站點層的水平擴展,是通過“nginx”實現的,通過修改nginx.conf,可以設置多個web后端。

畫外音:nginx是個例子,有可能是LVS或者F5等反向代理。

當web后端成為瓶頸的時候,只要增加服務器數量,新增web服務的部署,在nginx配置中配置上新的web后端,就能擴展站點層的性能,做到理論上的***高并發。

服務層如何進行水平擴展?

服務層的水平擴展,是通過“服務連接池”實現的。

站點層通過RPC-client調用下游的服務層RPC-server時,RPC-client中的連接池會建立與下游服務多個連接,當服務成為瓶頸的時候,只要增加服務器數量,新增服務部署,在RPC-client處建立新的下游服務連接,就能擴展服務層性能,做到理論上的***高并發。

畫外音:如果需要優雅的進行服務層自動擴容,這里可能需要配置中心里服務自動發現功能的支持。

數據層如何進行水平擴展?

在數據量很大的情況下,數據層(緩存,數據庫)涉及數據的水平擴展,將原本存儲在一臺服務器上的數據(緩存,數據庫)水平拆分到不同服務器上去,以達到擴充系統性能的目的。

互聯網數據層常見的水平拆分方式有這么幾種,以數據庫為例:

1. 按照范圍水平拆分

每一個數據服務,存儲一定范圍的數據,上圖為例:

  • user0庫,存儲uid范圍1-1kw
  • user1庫,存儲uid范圍1kw-2kw

這個方案的好處是:

  • 規則簡單,service只需判斷一下uid范圍就能路由到對應的存儲服務;
  • 數據均衡性較好;
  • 比較容易擴展,可以隨時加一個uid[2kw,3kw]的數據服務;

不足是:

  • 請求的負載不一定均衡,一般來說,新注冊的用戶會比老用戶更活躍,大range的服務請求壓力會更大;

2. 按照哈希水平拆分

每一個數據庫,存儲某個key值hash后的部分數據,上圖為例:

  • user0庫,存儲偶數uid數據
  • user1庫,存儲奇數uid數據

這個方案的好處是:

  • 規則簡單,service只需對uid進行hash能路由到對應的存儲服務;
  • 數據均衡性較好;
  • 請求均勻性較好;

不足是:

  • 不容易擴展,擴展一個數據服務,hash方法改變時候,可能需要進行數據遷移;

通過水平拆分來擴充系統性能,與主從同步讀寫分離來擴充數據庫性能,有什么本質的不同?

畫外音:這兩個方案千萬別搞混。

通過水平拆分擴展數據庫性能:

  • 每個服務器上存儲的數據量是總量的1/n,所以單機的性能也會有提升;
  • n個服務器上的數據沒有交集,那個服務器上數據的并集是數據的全集;
  • 數據水平拆分到了n個服務器上,理論上讀性能擴充了n倍,寫性能也擴充了n倍(其實遠不止n倍,因為單機的數據量變為了原來的1/n);

通過主從同步讀寫分離擴展數據庫性能:

  • 每個服務器上存儲的數據量是和總量相同;
  • n個服務器上的數據都一樣,都是全集;
  • 理論上讀性能擴充了n倍,寫仍然是單點,寫性能不變;

緩存層的水平拆分和數據庫層的水平拆分類似,也是以范圍拆分和哈希拆分的方式居多,就不再展開。

總結

高并發(High Concurrency)是互聯網分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時并行處理很多請求。

提高系統并發能力的方法主要有兩種:

  • 垂直擴展(Scale Up)
  • 水平擴展(Scale Out)

前者垂直擴展可以通過提升單機硬件性能,或者提升單機架構性能,來提高并發性,但單機性能總是有極限的,互聯網分布式架構設計高并發***解決方案還是后者:水平擴展。

互聯網分層架構中,各層次水平擴展的實踐又有所不同:

  • 反向代理層可以通過“DNS輪詢”的方式來進行水平擴展;
  • 站點層可以通過nginx來進行水平擴展;
  • 服務層可以通過服務連接池來進行水平擴展;
  • 數據庫可以按照數據范圍,或者數據哈希的方式來進行水平擴展;

各層實施水平擴展后,能夠通過增加服務器數量的方式來提升系統的性能,做到理論上的性能***。

思路比結論重要。

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

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

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

2017-01-11 21:40:03

互聯網架構高并發

2019-03-18 07:08:53

高可用互聯網架構分布式

2016-12-06 11:56:13

互聯網架構高可用

2017-12-26 15:52:31

MQ互聯網耦合

2015-06-11 16:48:46

2023-10-31 17:56:02

高并發設計架構

2019-05-13 10:30:34

互聯網架構容量

2016-09-22 15:55:39

互聯網架構容量設計

2018-01-01 06:41:44

耦合互聯網架構配置中心

2019-11-28 16:09:29

架構模板存儲

2022-06-09 08:01:43

秒殺系統互聯網架構

2016-09-22 15:01:59

微服務互聯網架構

2014-12-24 13:51:33

用友優普

2017-10-27 14:52:31

互聯網高可用架構高可用

2018-11-07 06:35:50

互聯網服務化高可用架構

2019-12-26 07:39:36

互聯網架構ip

2012-09-19 15:43:21

云時代

2015-11-02 19:02:19

高德汽車車連網導航

2021-04-26 05:36:59

物聯網

2024-05-13 11:43:26

開發層服務層ActiveMQ
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 麻豆精品国产免费 | 黄色大片毛片 | 久久久成人一区二区免费影院 | www国产成人 | 欧美a在线 | 一区二区在线免费观看 | 91资源在线 | 色一级片| 精精国产视频 | 欧美9999 | 欧美日韩国产中文 | 亚洲电影一级片 | 狠狠色香婷婷久久亚洲精品 | 日韩欧美在线视频观看 | 国产成人a亚洲精品 | 无码日韩精品一区二区免费 | 国产福利91精品一区二区三区 | 久久一区二区三区四区 | 激情国产视频 | 中文天堂在线观看 | 国产在线精品一区二区三区 | 男人天堂99 | 国产精品一区二区视频 | 成人三区 | 亚洲成人精品 | 日韩一区二区三区视频 | 北条麻妃一区二区三区在线观看 | 日韩免费福利视频 | 久久国产婷婷国产香蕉 | 亚洲一区二区三区高清 | 久久精品| 91精品在线播放 | 黄色大片免费网站 | 成人性视频免费网站 | 国产精品无码专区在线观看 | 国产婷婷在线视频 | 精品视频久久久 | 日韩欧美一级片 | 亚洲国产一区视频 | 亚洲精品一二三区 | 日韩电影免费在线观看中文字幕 |