為什麼高併發性很重要?

2021-09-19 23:57:17 字數 971 閱讀 9790

因此,**現在比以前複雜得多,

**架構師面臨的最大挑戰之一就是併發。自web服務開始以來,併發水平一直在不斷增長。乙個流行的**服務數十萬甚至數百萬同時使用者並不罕見。十年前,併發的主要原因是緩慢的客戶端 - 具有adsl或撥號連線的使用者。如今,併發性是由移動客戶端和較新的應用程式體系結構的組合引起的,這些體系結構通常基於維護持久連線,該連線允許客戶端使用新聞,推文,朋友訂閱源等進行更新。另乙個有助於提高併發性的重要因素是現代瀏覽器的行為改變,它可以開啟四到六個同時連線到**的連線,以提高頁面載入速度。

為了說明慢客戶端的問題,想象乙個簡單的基於apache的web伺服器,它產生乙個相對較短的100 kb響應 - 乙個帶有文字或影象的網頁。生成或檢索此頁面只需幾分之一秒,但需要10秒才能將其傳輸到頻寬為80 kbps(10 kb / s)的客戶端。從本質上講,web伺服器會相對快速地提取100 kb的內容,然後在釋放連線之前,它將忙於將內容緩慢地傳送到客戶端10秒鐘。現在假設您有1,000個同時連線的客戶,他們請求了類似的內容。如果每個客戶端僅分配1 mb的額外記憶體,則會產生1000 mb(約1 gb)的額外記憶體,專門用於為1000個客戶端提供100 kb的內容。事實上,基於apache的典型web伺服器通常為每個連線分配超過1 mb的額外記憶體,令人遺憾的是,幾十kbps仍然是移動通訊的有效速度。雖然在某種程度上通過增加作業系統核心套接字緩衝區的大小來改善向慢速客戶端傳送內容的情況,但這不是解決該問題的一般方法,並且可能具有不良***。

對於持久連線,處理併發性的問題更加明顯,因為為了避免與建立新http連線相關聯的延遲,客戶端將保持連線,並且對於每個連線的客戶端,web伺服器分配了一定量的記憶體。

因此,為了處理與增長的受眾相關的增加的工作量以及因此更高的併發水平 - 並且能夠持續這樣做 - **應該基於許多非常有效的構建塊。雖然硬體(cpu,記憶體,磁碟),網路容量,應用程式和資料儲存架構等方程式的其他部分顯然很重要,但是在web伺服器軟體中,客戶端連線被接受和處理。因此,web伺服器應該能夠隨著每秒同時連線和請求數量的增加而非線性地擴充套件。

為什麼練習很重要?

當你認識到1 1 2時,你需要去練習它嗎?它是乙個元知識,是固定的,原則性的。你對它的整個學習過程,到意識到它的層面,就足夠了。如若是由此發展出來的加法運算呢?它是一種方法,一種推理過程,它有兩個可變的引數。你需要練習,以使你的大腦遇見這兩個可變引數中的某些組合形式,以此總結某些規律,並運用規律來提...

為什麼提問能力很重要?

問題的定義 提問的時候,首先要發現問題,如何發現問題,需要定義問題。提問問題是對學習思考後的產物 再提問題過程中 可以和解答者對問題有更深的認識。也可以作為對學習的校驗和擴充 有提問能力說明在積極主動思考,很多時候提出乙個問題比找到答案更重要。很多事情都是通過不停提問題而越來越明確 側面反應了思考能...

為什麼說經常匯報工作很重要

brief answer 因為,leader在沒事兒的時候,通常不會主動找我們,而找到我們的時候,往往都是有狀況發生。detail answer 最近,我們準備把cvs從windows遷移到linux,我要求配置管理負責人小王為每個模組的owner建立帳號,並把使用者名稱 密碼郵件給各組組長。過了兩...