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