都在讨论高并发,结果连并发量、TPS、QPS都分不清
“?
年年歲歲跳槽季,回回必問高并發(fā)!原因很簡單,因?yàn)楦卟l(fā)能牽扯出太多問題,接口響應(yīng)超時(shí)、CPU負(fù)載升高、GC頻繁、死鎖、大數(shù)據(jù)量存儲等,能考察求職者的真實(shí)情況。
而很多人在第一步就倒下了!因?yàn)?strong>對數(shù)據(jù)化的指標(biāo)沒有概念:不清楚選擇什么樣的指標(biāo)來衡量高并發(fā)系統(tǒng)?分不清并發(fā)量和QPS,甚至不知道自己系統(tǒng)的總用戶量、活躍用戶量,平峰和高峰時(shí)的QPS和TPS等關(guān)鍵數(shù)據(jù),談優(yōu)化只是隔靴搔癢。DotNet社區(qū)分享九月第三期,我們聚焦高并發(fā)!
”
文:Yiru-Chen ?
來源:DotNetdaily?
DotNetdaily
如何理解高并發(fā)
公認(rèn)的高并發(fā)場景:雙11、春運(yùn)搶票、微博大V熱點(diǎn)新聞、秒殺系統(tǒng)、日均千萬級訂單系統(tǒng)、億級日活信息流,然而這些高并發(fā)場景,并發(fā)量各不相同,那到底多大并發(fā)才算高并發(fā)呢?
01
不能脫離場景看數(shù)字,10W QPS的秒殺是高并發(fā),1W QPS的信息流就不是高并發(fā)?信息流場景涉及復(fù)雜的推薦模型和各種人工策略,業(yè)務(wù)邏輯可能比秒殺場景復(fù)雜10倍不止。因此,不在同一個(gè)維度,沒有任何比較意義。
02
業(yè)務(wù)都是從0到1做起來的,并發(fā)量和QPS只是參考指標(biāo),高并發(fā)最重要的是流量變成10倍、100倍的過程中,是否有恰當(dāng)?shù)姆绞饺パ葸M(jìn)系統(tǒng),能從架構(gòu)設(shè)計(jì)、編碼實(shí)現(xiàn)、甚至產(chǎn)品方案等多維度去預(yù)防和解決高并發(fā)引起的問題,而不是一味地升級硬件、加機(jī)器做水平擴(kuò)展。
DotNetdaily
高并發(fā)系統(tǒng)設(shè)計(jì)的目標(biāo)
高并發(fā)就是高性能?其實(shí)不然,高并發(fā)系統(tǒng)設(shè)計(jì)的目標(biāo)有三個(gè):高性能、高可用,以及高可擴(kuò)展。
高性能 ? ?
性能體現(xiàn)了系統(tǒng)的并行處理能力,在有限的硬件投入下,提高性能意味著節(jié)省成本。優(yōu)化用戶的體驗(yàn),響應(yīng)時(shí)間分別是100毫秒、1秒、3秒,給用戶的感受是完全不同的。
高可用 ??
表示系統(tǒng)可以正常服務(wù)的時(shí)間。對于高并發(fā)系統(tǒng),最基本的要求能做到3個(gè)9以上,像一些大公司每年動(dòng)輒千億以上的GMV,1%(2個(gè)9)不可服務(wù)就是10億級別的業(yè)務(wù)影響。
高擴(kuò)展 ?
表示系統(tǒng)的擴(kuò)展能力,流量高峰時(shí)能否在短時(shí)間內(nèi)完成擴(kuò)容,更平穩(wěn)地承接峰值流量,比如雙11活動(dòng)、明星離婚等熱點(diǎn)事件。
這3個(gè)目標(biāo)是需要綜合考慮的,因?yàn)樗鼈兓ハ嚓P(guān)聯(lián)相互影響。比如說:為了系統(tǒng)的擴(kuò)展能力,將服務(wù)設(shè)計(jì)成無狀態(tài)的,這種集群設(shè)計(jì)保證了高擴(kuò)展性,也間接提升了系統(tǒng)的性能和可用性;為了保證可用性,通常會對服務(wù)接口進(jìn)行超時(shí)設(shè)置,以防大量線程阻塞在慢請求上造成系統(tǒng)雪崩,那超時(shí)時(shí)間設(shè)置成多少合理呢?也是參考服務(wù)的性能表現(xiàn)來設(shè)置的。
DotNetdaily
高并發(fā)的實(shí)踐方案有哪些
說起高并發(fā)方案,很多人都能滔滔不絕,大到垂直拆分、水平擴(kuò)展、緩存、異步化架構(gòu)設(shè)計(jì),小到并發(fā)編程、請求合并、文件壓縮等編程技術(shù),然而沒有實(shí)踐落地經(jīng)驗(yàn),只能是紙上談兵,全無落地細(xì)節(jié)。
本期.NET社區(qū)技術(shù)分享活動(dòng),重磅邀請了微軟MVP為大家在線分享,基于真實(shí)項(xiàng)目案例解讀從0到1的架構(gòu)演進(jìn),從1w用戶成長到1000w背后技術(shù)變遷。
特別提醒:
本次分享與Bilibili聯(lián)合同步直播,根據(jù)對方要求,此次分享需提前預(yù)約,請大家掃描下文海報(bào)中的二維碼及時(shí)預(yù)約哦。(工作人員會拉你進(jìn)微軟MVP分享交流群!)
【請大家及時(shí)掃碼預(yù)約】
分享前請?zhí)崆邦I(lǐng)取資料
高并發(fā)是一個(gè)復(fù)雜且系統(tǒng)性的問題,為確保大家能更好地吸收此次分享會的硬核干貨,作為主辦方,現(xiàn)整理了一組學(xué)習(xí)資料,含Redis、RabbitMQ、Kafka、MongoDB等內(nèi)容,可掃碼文末二維碼直接獲取,提前準(zhǔn)備下啦!
寫在最后的話:
高并發(fā)設(shè)計(jì)秉承架構(gòu)3原則:簡單、合適和演進(jìn)。“過早的優(yōu)化是萬惡之源”,不能脫離業(yè)務(wù)的實(shí)際情況,更不要過度設(shè)計(jì),合適的方案就是最完美的。今晚八點(diǎn),來跟MVP一起經(jīng)歷架構(gòu)升級,于實(shí)戰(zhàn)中成長!
本次邀約大佬分享前后協(xié)調(diào)數(shù)周,著實(shí)不易,免費(fèi)公益性質(zhì),大家真心別錯(cuò)過!
(Redis、RabbitMQ、Kafka、MongoDB等自取)
DotNetdaily
資料包 掃碼免費(fèi)獲取
高并發(fā)核心技術(shù)落地
社區(qū)分享會?09/21?20:00
總結(jié)
以上是生活随笔為你收集整理的都在讨论高并发,结果连并发量、TPS、QPS都分不清的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: .NET Core + Kubernet
- 下一篇: 大数据下的质量体系建设