電商秒殺系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
一、電商秒殺系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
1 秒殺系統(tǒng)的應(yīng)用特征
1 請(qǐng)求量大,請(qǐng)求高并發(fā); 2 用戶瞬間活躍量高,要求系統(tǒng)響應(yīng)快;
3 秒殺商品少,只有少數(shù)用戶能夠買到。
2 電商秒殺系統(tǒng)的設(shè)計(jì)設(shè)計(jì)架構(gòu)
采用分層架構(gòu),各層獨(dú)立開發(fā),獨(dú)立部署在各層服務(wù)集群,應(yīng)用層與服務(wù)層通過zookeeper進(jìn)行分布式服務(wù)協(xié)作。
1 系統(tǒng)前端用ngix 做服務(wù)的負(fù)載均衡,前端應(yīng)用層部署電商應(yīng)用服務(wù)器集群,頁面靜態(tài)化生成html頁面,并使用CDN內(nèi)容加速器,提高用戶響應(yīng)速度,減輕前端壓力。
2 服務(wù)層是定義數(shù)據(jù)層的db操作接口,起到應(yīng)用層發(fā)現(xiàn)與使用數(shù)據(jù)層服務(wù)接口的功能。
3 后端采用zookeeper + 阿里double框架,數(shù)據(jù)層定義并實(shí)現(xiàn)DB操作接口,發(fā)布到zookeeper定義的服務(wù)列表中。
數(shù)據(jù)庫采用mysql 集群,主從配置,讀寫分離的方式。
3 秒殺系統(tǒng)的實(shí)現(xiàn)。
秒殺開始時(shí),把商品的庫存數(shù)加入到redis緩存,用戶下單請(qǐng)求到達(dá)應(yīng)用層服務(wù)器, 把請(qǐng)求加入到redis緩存,商品庫存數(shù)減1,并把用戶請(qǐng)求加入到消息隊(duì)列中,當(dāng)商品庫存數(shù)是0的時(shí)候,系統(tǒng)直接對(duì)用戶請(qǐng)求返回秒殺結(jié)束,進(jìn)入搶購失敗頁面。系統(tǒng)寫個(gè)多線程去消息隊(duì)列處理請(qǐng)求,生成訂單,前端異步提示秒殺成功。
場景中的定時(shí)領(lǐng)取是一個(gè)高并發(fā)的業(yè)務(wù),像秒殺活動(dòng)用戶會(huì)在到點(diǎn)的時(shí)間涌入,DB瞬間就接受到一記暴擊,hold不住就會(huì)宕機(jī),然后影響整個(gè)業(yè)務(wù);
4 秒殺系統(tǒng)獨(dú)立部署
由于秒殺系統(tǒng)的高并發(fā)請(qǐng)求,對(duì)系統(tǒng)資源消耗大,為防止對(duì)其他正常系統(tǒng)的影響,秒殺系統(tǒng)可獨(dú)立部署在秒殺服務(wù)器。
posted on 2018-05-21 15:18 圣彼得 閱讀(1958) 評(píng)論(0) 收藏 舉報(bào)
浙公網(wǎng)安備 33010602011771號(hào)