如設(shè)計(jì)一個(gè)秒殺系統(tǒng) - 閱讀摘錄
(每臺(tái)服務(wù)器獲得自己能夠賣出多少產(chǎn)品,用戶被隨機(jī)分配到每臺(tái)機(jī)器上進(jìn)行處理。)
需求:大量用戶搶有限的商品,先到先得。用戶并發(fā)訪問流量非常大,需要分布式的機(jī)器集群處理請(qǐng)求。
系統(tǒng)實(shí)現(xiàn):不限
模塊設(shè)計(jì):
用戶請(qǐng)求分發(fā)模塊:Nginx / Apache 分發(fā)請(qǐng)求到不同的機(jī)器;
用戶請(qǐng)求預(yù)處理模塊:以商品是否剩余來判斷,是否處理該用戶請(qǐng)求;
用戶請(qǐng)求處理模塊:把通過預(yù)處理的請(qǐng)求,封裝成事務(wù),提交給數(shù)據(jù)庫,并返回是否成功;
數(shù)據(jù)庫接口模塊:數(shù)據(jù)庫的唯一接口,負(fù)責(zé)與數(shù)據(jù)庫交互,提供 RPC 接口供查詢時(shí)候秒殺結(jié)束、剩余數(shù)量等信息;