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