究竟啥才是網際網路架構中的高併發!

2021-08-20 08:21:06 字數 2228 閱讀 1868

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

qps:每秒響應請求數。在網際網路領域,這個指標和吞吐量區分的沒有這麼明顯。

網際網路分布式架構設計,提高系統併發能力的方式,方**上主要有兩種:垂直擴充套件(scale up)與水平擴充套件(scale out)。

垂直擴充套件:提公升單機處理能力

水平擴充套件:只要增加伺服器數量,就能線性擴充系統效能

反向**層:系統入口,反向**;

站點應用層:實現核心應用邏輯,返回html或者json;

服務層:如果實現了服務化,就有這一層;

資料-快取層:快取加速訪問儲存;

資料-資料庫層:資料庫固化資料儲存;

1、反向**層的水平擴充套件

當nginx成為瓶頸的時候,只要增加伺服器數量,新增nginx服務的部署,增加乙個外網ip,就能擴充套件反向**層的效能,做到理論上的無限高併發。

原理:反向**層的水平擴充套件,是通過「dns輪詢」實現的:dns-server對於乙個網域名稱配置了多個解析ip,每次dns解析請求來訪問dns-server,會輪詢返回這些ip。

2、站點層的水平擴充套件

當web後端成為瓶頸的時候,只要增加伺服器數量,新增web服務的部署,在nginx配置中配置上新的web後端,就能擴充套件站點層的效能,做到理論上的無限高併發

原理:站點層的水平擴充套件,是通過「nginx」實現的。通過修改nginx.conf,可以設定多個web後端。

3、服務層的水平擴充套件

當服務成為瓶頸的時候,只要增加伺服器數量,新增服務部署,在rpc-client處建立新的下游服務連線,就能擴充套件服務層效能,做到理論上的無限高併發。如果需要優雅的進行服務層自動擴容,這裡可能需要配置中心裡服務自動發現功能的支援。

原理: 服務層的水平擴充套件,是通過「服務連線池」實現的。

站點層通過rpc-client呼叫下游的服務層rpc-server時,rpc-client中的連線池會建立與下游服務多個連線

4、資料層的水平擴充套件

在資料量很大的情況下,資料層(快取,資料庫)涉及資料的水平擴充套件,將原本儲存在一台伺服器上的資料(快取,資料庫)水平拆分到不同伺服器上去,以達到擴充系統效能的目的。

這裡需要注意的是,通過水平拆分來擴充系統效能,與主從同步讀寫分離來擴充資料庫效能的方式有本質的不同。1.按照範圍水平拆分(比如1-1w分一下,1w-2w分割一下)

好處是:1.規則簡單,service只需判斷一下uid範圍就能路由到對應的儲存服務;

2.資料均衡性較好;

3.比較容易擴充套件,可以隨時加乙個uid[2kw,3kw]的資料服務;

不足是:

1.請求的負載不一定均衡,一般來說,新註冊的使用者會比老使用者更活躍,大range的服務請求壓力會更大;

2.按照雜湊水平拆分

好處是:1.規則簡單,service只需對uid進行hash能路由到對應的儲存服務;

2.資料均衡性較好;

3.請求均勻性較好;

不足是:

1.不容易擴充套件,擴充套件乙個資料服務,hash方法改變時候,可能需要進行資料遷移;

3.通過水平拆分擴充套件資料庫效能:

(1)每個伺服器上儲存的資料量是總量的1/n,所以單機的效能也會有提公升;

(2)n個伺服器上的資料沒有交集,那個伺服器上資料的並集是資料的全集;

(3)資料水平拆分到了n個伺服器上,理論上讀效能擴充了n倍,寫效能也擴充了n倍(其實遠不止n倍,因為單機的資料量變為了原來的1/n);

4.通過主從同步讀寫分離擴充套件資料庫效能:

(1)每個伺服器上儲存的資料量是和總量相同;

(2)n個伺服器上的資料都一樣,都是全集;

(3)理論上讀效能擴充了n倍,寫仍然是單點,寫效能不變;

究竟啥才是網際網路架構「高併發」

一 什麼是高併發 高併發 high concurrency 是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。高併發相關常用的一些指標有響應時間 response time 吞吐量 throughput 每秒查詢率qps query per se...

究竟啥才是網際網路架構「高併發」

一 什麼是高併發 高併發 high concurrency 是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。高併發相關常用的一些指標有響應時間 response time 吞吐量 throughput 每秒查詢率qps query per se...

究竟啥才是網際網路架構「高併發」

一 什麼是高併發 高併發 high concurrency 是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求。高併發相關常用的一些指標有響應時間 response time 吞吐量 throughput 每秒查詢率qps query per se...