一起了解什麼是高併發

2021-09-16 12:36:01 字數 1113 閱讀 8851

我們在找工作時,經常在招聘資訊上看到有這麼一條:有構建大型網際網路服務及高併發等經驗,想到高併發,我們第一想到了**上經常出現的新聞阿里雙11每秒處理xx萬訂單,瞬間覺得高併發是一種很屌的技術,很高大上,如果像筆者這種沒做過大型服務的普通程式設計師,在此根據網上的資料,對高併發寫一下我個人的看法

高併發(high concurrency)是網際網路分布式系統架構設計中必須考慮的因素之一,它通常是指,通過設計保證系統能夠同時並行處理很多請求

那麼很多請求,具體達到多少請求才算是高併發系統呢?這個也沒有明確數量上的定義,根據網上很多大型網際網路公司的相關高併發部落格,一般pv在千萬級別以上的公司才會涉及到這個概念,所以如果某個系統的日pv在千萬級別以上,可能是乙個高併發系統.這裡根據具體業務不同,這個數字可能高或者低一些

這裡涉及到乙個問題,很多同學搞不清楚併發與並行的區別,這裡我根據我根據知乎上這個問題某位網友的例子,我覺得很好

併發:你有處理多個任務的能力,不一定同時(乙個cpu輪流)

並行:有同時處理多個任務的能力(多個cpu同時)

併發和並行都可以是很多個執行緒,就看這些執行緒能不能同時被(多個)cpu執行,可以說明是並行,併發是多個執行緒被乙個cpu輪流切換著執行

高併發相關指標有響應時間(response time),吞吐量(throughput),每秒查詢率qps(query per second),併發使用者數等

響應時間:系統對某個請求做出相應的時間.例如處理乙個http請求,從http發出到收到響應需要200ms,則200ms就是系統的響應時間.

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

qps:每秒響應請求數,這個感覺和吞吐量區分不大

有以下途徑:

golang從語言層面對多核cpu支援非常好,在設計程式時運用了併發的設計理念,go程式在執行期有可能是並行的

rob pike大神關於兩者的闡述:「併發關乎結構,並行關乎執行」

一起了解RESTful架構

restful架構,就是目前最流行的一種網際網路軟體架構。它結構清晰 符合標準 易於理解 擴充套件方便,所以正得到越來越多 的採用。首先我們從字面入手,顯然這是乙個縮寫,全稱是 representationstatetransfer 直譯過來就是 表現層狀態轉化 下面我們了解一下每個單詞背後的含義,...

1 1 一起了解大資料!

什麼是大資料?大資料是指無法在一定時間範圍內用常規軟體工具進行捕捉 管理和處理的資料集合,是需要新處理模式才能具有更強的決策力 洞察發現力和流程優化能力的海量 高增長率和多樣化的資訊資產。大資料的作用?1 對大資料的處理分析正成為新一代資訊科技融合應用的結點。移動網際網路 物聯網 社交網路 數字家庭...

一起了解下Centos中 vim配置 有多強大?

在linux的系統上安裝vim編輯器後,發現vim的頁面設定還是不太習慣,沒有顯示的行號,也沒有自動的縮排,頁面的背景也不是很好看,但是vim編輯器是可以進行配置的,我們可以打造屬於自己的vim風格。下面主要討論一下簡單的vim配置問題 1.簡單的頁面設定 附有效果圖 首先,使用cd etc命令進入...