更新時間:2021-02-14 10:39:52 來源:動力節點 瀏覽2209次
其實【高并發】的意思和【并發】的意思不止是差了一個“高”字,而是個寬泛得多的概念。【高并發】是指可以讓軟件系統在一段時間內能夠處理大量的請求。比如每秒鐘可以完成10萬個請求。這是互聯網系統的一個重要的特征。
不像【并發】說的是“處理”,【并行】說的是“執行”,【高并發】說的是最終效果。只要能達到效果,不管怎么實現都行。因此,極端一點【高并發】甚至并不一定需要【并行】,只要處理速度快的足夠滿足要求就可以。如啟動一個nginx的【OS進程】,它只能用到一個CPU核心,也就不可能【并行】。但是他如果能每秒能處理10萬個請求,而業務需求只要求8萬個請求就可以了,那么這個單進程的nginx本身就算【高并發】了。
當然,現實當中【高并發】的要求會相當“高“(雙十一都刷過吧),說的也是完整的業務流程請求,而非簡單的HTTP轉發。這樣的系統大量應用各種【并發】的集中人類智慧的各種方法,并盡可能的【并行】。
除了【并發】和【并行】,【高并發】還需要:
數據表普遍被分庫分表,否則單機放不下,或者查詢性能不足
解決分布式事務
因為機器都可能壞,為了保證少數機器壞掉不會影響處理的性能,必須引入HA機制
因為系統都有極限,超過極限響應能力就會急劇下降。因此必須引入限流的方案來保護系統
這么復雜的系統會涉及到N個service,N個存儲,N個隊列…… 這些資源的管理又成為了新的問題,這又需要對集群和服務做管理
這么多服務,肯定要解決分布式的Tracing和報警問題
……
當面試的時候提起【高并發】,大概率是希望面試者聊聊上面這些主題。但請特別特別留意,不同領域的【高并發】實際的意思(怎么算“高”,如何達成,哪些問題是關鍵問題)會非常不同。電商的高并發,抖音的高并發,12306賣火車票的高并發,基金交易系統的高并發,海量數據處理的高并發,這些問題其實都很不同。所以我很建議每次都討論具體的問題,而非泛泛談論【高并發】這個名詞。
拓展一下,從商業上考慮【高并發】,其實際的意思是“用盡可能少的資源實現足夠滿足需要的并發請求數量,以形成競爭優勢。能用有限資源短時間內處理大量請求,也就意味著:
1)單個請求處理成本的降低。比如傳統企業處理一單交易成本是10元,而互聯網企業壓低到了0.1元。這就形成了“規模經濟下的低成本結構“,是一種碾壓式的競爭優勢。
2)提高轉化效率。為了獲客,市場部門都會拼命做如做拼團、發紅包的工作。假設兩家公司花同樣的預算做獲客。公司A的下單系統只能支持1000單/s;而B公司能做到成本不比A公司多很多的情況下實現10000單/s,那么過一段時間,A公司將被徹底打垮。如果你是老板,并且對用戶需求很有信息,你會玩命砸技術投入,避免系統成為商業閉環的瓶頸(如果發生了,真坑啊)。
這也就是為啥有些公司突然火起來,然后玩命招技術人員,我們的機會也變得多了起來的原因。在本站的多線程教程里,詳細為大家講解了各種高并發的知識,想提升自己的小伙伴千萬不要錯過哦!
0基礎 0學費 15天面授
有基礎 直達就業
業余時間 高薪轉行
工作1~3年,加薪神器
工作3~5年,晉升架構
提交申請后,顧問老師會電話與您溝通安排學習