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