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

分布式架構:如何應對高并發的用戶請求

云計算 分布式
微服務、消息隊列、NoSQL 等分布式技術在早期出現時,通常具有較高的技術難度和使用門檻,因此僅在一些大規模的互聯網系統中得到應用。

隨著互聯網應用和云計算的普及,架構設計和軟件技術的關注重點已從實現復雜業務邏輯逐漸轉變為滿足大量用戶的高并發訪問需求。一個簡單的計算過程,在面對大量用戶訪問時會帶來截然不同的技術挑戰,這也直接影響到軟件開發方法、技術團隊組織以及軟件過程管理方式,推動它們發生全面轉型。

以新浪微博為例,最初該項目由兩位工程師負責,一個前端和一個后端,他們在一周內就完成了新浪微博的開發。然而,隨著時間的推移,新浪微博的技術團隊已經擴大到上千人。這支團隊面臨的技術挑戰主要來源于兩個方面:一是日益復雜的功能需求,二是用戶數量的增加所帶來的高并發訪問壓力。

這種挑戰和壓力幾乎普遍存在于所有大型互聯網系統中,比如淘寶、百度和微信等。盡管這些平臺的功能各不相同,但它們都必須應對相似的高并發用戶訪問請求。需要注意的是,同樣的功能,如果是供少數人使用,與供幾億人使用,其技術架構差異是巨大的。

當同時訪問系統的用戶數量不斷增加時,系統所需消耗的計算資源也隨之上升。這意味著需要更多的 CPU 和內存來處理用戶的請求,更多的網絡帶寬來傳輸數據,以及更多的磁盤空間來存儲用戶的信息。一旦資源消耗超過了服務器的承載極限,服務器就可能崩潰,導致整個系統無法正常運行。

垂直伸縮與水平伸縮

為應對高并發用戶訪問所帶來的系統資源消耗,一種常見的解決方案是垂直伸縮。垂直伸縮指的是提升單臺服務器的處理能力,例如,通過更快頻率的 CPU、更多核心的 CPU、更大容量的內存、更快的網卡,以及更多的磁盤來增強單臺服務器的性能。這種方法可以有效提升系統的處理能力。

在大型互聯網應用出現之前,傳統行業(如銀行和電信)主要依賴垂直伸縮來提升系統能力。隨著業務增長和用戶數量的增加,當服務器的計算能力無法滿足需求時,企業通常會選擇更強大的計算機,逐步更換更快的 CPU、更大的內存和磁盤,或者將服務器從小型機升級到中型機,再到大型機。雖然服務器的處理能力不斷增強,但其成本也隨之上升,運維管理的復雜性也增加了。

垂直伸縮所帶來的成本與服務器處理能力之間并不一定呈線性關系。這意味著,即使投入相同的費用,也不一定能夠獲得相應的計算能力。此外,隨著計算能力的提升,所需的資金支出往往會顯著增加。同時,受限于計算機硬件科技的水平,單臺服務器的計算能力無法無限制地增加,而互聯網,尤其是物聯網的計算需求幾乎是無止境的。因此,在互聯網及物聯網領域,垂直伸縮并不是首選方案,反而更傾向于采用水平伸縮。

水平伸縮的核心在于不再提升單臺服務器的處理能力,而是通過增加更多的服務器來構建一個分布式集群。該集群能夠統一對外提供服務,從而提高整體系統的處理能力。要實現這一點,需要在架構設計上進行充分考慮,將多臺服務器有效地整合,使其成為系統的一個整體,從而實現資源的統一管理與處理能力的提升。這一策略已成為互聯網應用和云計算中普遍采用的分布式架構方案。

互聯網分布式架構演化

分布式架構是互聯網企業在業務快速發展過程中,逐漸發展起來的一種技術架構,包括了一系列的分布式技術方案:分布式緩存、負載均衡、反向代理與 CDN、分布式消息隊列、分布式數據庫、NoSQL 數據庫、分布式文件、搜索引擎、微服務等等,還有將這些分布式技術整合起來的分布式架構方案。

這些分布式技術和架構方案是互聯網應用隨著用戶的不斷增長,為了滿足高并發用戶訪問不斷增長的計算和存儲需求,逐漸演化出來的。可以說,幾乎所有這些技術都是由應用需求直接驅動產生的。

下面我們通過一個典型的互聯網應用的發展歷史,來看互聯網系統是如何一步一步逐漸演化出各種分布式技術,并構成一個復雜龐大的分布式系統的。

在最早的時候,系統因為用戶量比較少,可能只有幾個用戶,比如剛才提到的微博。一個應用訪問自己服務器上的數據庫,訪問自己服務器的文件系統,構成了一個單機系統,這個系統就可以滿足少量用戶使用了。

圖片圖片

如果這個系統經過驗證在業務上是可行且有價值的,那么用戶量將會迅速增長。例如,新浪微博通過引入一些明星大V開通微博,迅速吸引了大量粉絲關注。在這種情況下,服務器將無法承受不斷增加的訪問壓力,因此需要進行首次升級,具體措施是將數據庫與應用進行分離。

圖片圖片

在系統最初的單機架構中,數據庫和應用程序是部署在同一臺服務器上的。當進行首次分離時,應用程序、數據庫和文件系統被分別部署到不同的服務器上,從一臺服務器擴展為三臺服務器,從而使處理能力提升了三倍。這一分離過程幾乎不需要額外的技術成本,只需將數據庫和文件系統進行遠程部署并進行遠程訪問即可。

然而,隨著用戶數量的進一步增加,微博吸引了越來越多的粉絲,三臺服務器也開始無法滿足這種增長帶來的壓力。此時,為了改善系統性能,就需要引入緩存機制來進一步提升處理能力。

圖片圖片

所謂緩存,是指將應用程序需要讀取的數據存儲在緩存中,以便通過緩存來讀取數據,而非直接從數據庫中讀取。緩存主要分為兩種類型:分布式緩存和本地緩存。分布式緩存將多臺服務器構成一個集群,共同存儲更大規模的緩存數據,從而為應用程序提供更強大的緩存服務。

通過使用緩存,應用程序可以避免頻繁訪問數據庫。因為數據庫中的數據存儲在磁盤上,訪問數據庫的速度相對較慢,而緩存中的數據則存儲在內存中,訪問速度更快。此外,數據庫中的數據通常以原始形式存在,而緩存中的數據則往往以結果形式存在,例如已經構建好的對象,這樣可以省去對象計算的時間,降低 CPU 的壓力。

最重要的是,應用程序通過訪問緩存可以顯著降低對數據庫的訪問壓力,而數據庫通常是整個系統的瓶頸所在。因此,減少數據庫的訪問壓力能夠有效改善整個系統的處理能力。

隨著用戶的進一步增加,比如微博有更多的明星加入進來,并帶來了更多的粉絲。那么應用服務器可能又會成為瓶頸,因為連接大量的并發用戶的訪問,這時候就需要對應用服務器進行升級。通過負載均衡服務器,將應用服務器部署為一個集群,添加更多的應用服務器去處理用戶的訪問。

圖片圖片

在微博平臺上,用戶的主要操作是瀏覽微博,也就是讀取微博內容。在這種情況下,如果僅僅是明星發布微博,粉絲進行瀏覽,對數據庫的訪問壓力相對較小,因為微博數據可以通過緩存進行提供。然而,實際上,粉絲們也會發微博,進行寫入操作,這就會使得數據庫再次成為整個系統的瓶頸。

單一的數據庫難以承受如此巨大的訪問壓力。因此,此時的解決方案是數據庫的讀寫分離。具體而言,這一方案通過數據復制的方式將一個數據庫分為兩個部分:主數據庫和從數據庫。主數據庫主要負責數據的寫操作,所有的寫入操作都會被復制到從數據庫,以確保從數據庫的數據與主數據庫保持一致。而從數據庫則主要負責處理數據的讀取操作。這種方式有效減輕了主數據庫的負擔,提高了整個系統的性能和可擴展性。

圖片圖片

通過這種方式,將一臺數據庫服務器水平擴展為兩臺數據庫服務器,可以顯著提升數據處理能力。對于大多數互聯網應用而言,這種分布式架構已經能夠有效滿足用戶的并發訪問壓力。然而,對于更大規模的互聯網應用,如新浪微博,還需要解決海量數據的存儲與查詢問題,以及由此產生的網絡帶寬壓力和訪問延遲等挑戰。

隨著業務的不斷復雜化,系統的低耦合與模塊化開發、部署也成為重要的技術難題。海量數據的存儲主要通過分布式數據庫、分布式文件系統和NoSQL 數據庫來解決。僅僅在傳統數據庫上進行查詢已無法滿足這些數據的性能要求,因此需要部署獨立的搜索引擎來提供高效的查詢服務。同時,為了減輕數據中心的網絡帶寬壓力并提升用戶訪問速度,可以利用CDN和反向代理提供前置緩存,從而快速返回靜態文件資源給用戶。

為了使各個子系統更加靈活且易于擴展,采用分布式消息隊列來解耦相關子系統,通過消息的發布與訂閱實現子系統間的協作。此外,應用微服務架構將邏輯上獨立的模塊在物理上也進行獨立部署和維護,系統通過組合多個微服務來完成業務邏輯,從而實現更高級別的模塊復用,促進系統的快速開發與維護。

圖片圖片

微服務、消息隊列、NoSQL 等分布式技術在早期出現時,通常具有較高的技術難度和使用門檻,因此僅在一些大規模的互聯網系統中得到應用。然而,近年來隨著技術的不斷成熟,尤其是云計算的普及,這些技術的使用門檻逐漸降低。如今,許多中小規模的系統也開始廣泛采用這些分布式技術架構來設計和構建自己的互聯網應用。

責任編輯:武曉燕 來源: 二進制跳動
相關推薦

2020-02-10 19:16:52

服務端高并發架構

2017-12-12 14:51:15

分布式緩存設計

2019-09-25 09:01:53

高并發架構分布式

2019-12-17 11:18:37

高并發分布式架構

2020-10-13 07:44:45

理解分布式

2025-05-07 02:15:00

分布式鎖高并發UUID鎖

2020-09-23 22:36:27

分布式架構系統

2022-05-11 13:55:18

高可用性分布式彈性

2023-05-29 14:07:00

Zuul網關系統

2019-10-10 09:16:34

Zookeeper架構分布式

2021-05-14 14:52:59

高并發TPSQPS

2024-11-27 00:20:32

2022-01-10 19:45:40

微服務GO系統

2018-07-11 09:34:55

分布式架構高可用

2024-07-03 11:01:55

2023-09-14 15:38:55

云原生分布式架構

2019-06-19 15:40:06

分布式鎖RedisJava

2022-03-07 08:14:27

并發分布式

2022-03-11 10:03:40

分布式鎖并發

2018-12-14 10:06:22

緩存分布式系統
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久国产精品网站 | 九九久久久久久 | 影音先锋中文字幕在线观看 | 午夜免费观看网站 | 久久国产精品视频 | 久草福利 | 成人精品一区二区三区 | 在线播放国产一区二区三区 | 精品国产欧美一区二区 | 中文字幕 欧美 日韩 | 国产一区视频在线 | 亚洲精品在线视频 | 亚洲精品一区二区在线观看 | 97国产超碰 | 欧美成人在线网站 | 成人av免费看 | 成人av网站在线观看 | 看片天堂| 日韩色在线 | 免费看黄色片 | 亚洲免费观看视频网站 | 国产精品免费大片 | 亚洲成av人片在线观看 | 国产精品乱码一区二区三区 | 特级丰满少妇一级aaaa爱毛片 | 久久国产视频网站 | 日韩午夜 | 日韩午夜 | 国产精品高潮呻吟久久 | 福利视频一区 | 国产精品精品视频一区二区三区 | 欧美xxxx日本 | 久久久久久久久毛片 | 午夜免费福利片 | 久久久黄色 | 欧美一级二级视频 | 中文字幕成人av | 国产精品国产三级国产aⅴ原创 | 欧美在线 | 中文字幕 国产精品 | 天堂一区|