找工作時(shí),經(jīng)常能在招聘信息上看到這么一條:有構(gòu)建大型互聯(lián)網(wǎng)服務(wù)及高并發(fā)經(jīng)驗(yàn)者,優(yōu)先。
但對(duì)中小公司的程序員來(lái)說(shuō),高并發(fā)似乎遙不可及——公司業(yè)務(wù)不需要,用戶量級(jí)不夠,老板說(shuō)用不上高并發(fā)架構(gòu)設(shè)計(jì),何來(lái)“高并發(fā)經(jīng)驗(yàn)”呢?
作為過(guò)來(lái)人,我想說(shuō)的是:公司業(yè)務(wù)流量平穩(wěn),不表示不會(huì)遇到高并發(fā)的需求場(chǎng)景。拿最常見(jiàn)的技術(shù)方案舉例吧,電商系統(tǒng)里的下單流程設(shè)計(jì),在每秒只調(diào)用一次的系統(tǒng)中,關(guān)注業(yè)務(wù)邏輯本身就夠了:查詢庫(kù)存是否充足,在數(shù)據(jù)庫(kù)中生成訂單,成功后鎖定庫(kù)存,然后進(jìn)入支付流程。
這個(gè)流程非常清晰,實(shí)現(xiàn)也簡(jiǎn)單,但如果做秒殺活動(dòng),再配合一些運(yùn)營(yíng)推廣,你會(huì)發(fā)現(xiàn)下單操作的調(diào)用量高達(dá) 10,000 次 / 秒,之前的方案不再適用,需要設(shè)計(jì)新方案:10000 次請(qǐng)求同時(shí)查詢庫(kù)存,會(huì)把庫(kù)存系統(tǒng)拖垮嗎?如果請(qǐng)求全部通過(guò),就要同時(shí)生成 10000 次訂單,數(shù)據(jù)庫(kù)能抗得住嗎?如果抗不住,該如何解決?
雖說(shuō)每家公司所處的行業(yè)、業(yè)務(wù)場(chǎng)景不同,所需的高并發(fā)系統(tǒng)是不一樣的,但其中的設(shè)計(jì)和優(yōu)化思想,卻是萬(wàn)變不離其宗、可以習(xí)得的。所以,為了避免遇到問(wèn)題時(shí)手忙腳亂,要提前做好知識(shí)儲(chǔ)備,才能應(yīng)對(duì)隨時(shí)可能出現(xiàn)的高并發(fā)需求場(chǎng)景。
其實(shí),這方面知識(shí)我也一直在學(xué)習(xí),想從別人的經(jīng)驗(yàn)里提煉一點(diǎn)思路。這兩天,剛擼完唐揚(yáng)的