日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > windows >内容正文

windows

阿里双十一秒杀系统架构设计,有哪些技术关键点?

發(fā)布時(shí)間:2024/9/20 windows 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 阿里双十一秒杀系统架构设计,有哪些技术关键点? 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

馬上要到雙11了,就來談?wù)勅绾卧O(shè)計(jì)一個(gè)秒殺系統(tǒng)架構(gòu)

技術(shù)挑戰(zhàn)

1. 對(duì)原有業(yè)務(wù)形成沖擊

秒殺活動(dòng)只是網(wǎng)站營銷的一個(gè)附加活動(dòng),特點(diǎn)是:時(shí)間短、并發(fā)訪問量大,如果和網(wǎng)站原有應(yīng)用部署在一起,必然會(huì)對(duì)現(xiàn)有業(yè)務(wù)造成沖擊。

解決方案:將秒殺系統(tǒng)獨(dú)立部署,甚至使用獨(dú)立域名,使其與網(wǎng)站完全隔離。

2. 高并發(fā)下數(shù)據(jù)庫、應(yīng)用負(fù)載

用戶在秒殺開始前,通過不停刷新瀏覽器頁面以保證不會(huì)錯(cuò)過秒殺,這些請(qǐng)求如果按照一般的網(wǎng)站應(yīng)用架構(gòu),訪問

應(yīng)用服務(wù)器、連接數(shù)據(jù)庫,

會(huì)對(duì)應(yīng)用服務(wù)器和數(shù)據(jù)庫服務(wù)器造成負(fù)載壓力。

解決方案:重新設(shè)計(jì)秒殺商品頁面,不使用網(wǎng)站原來的商品詳細(xì)頁面,頁面內(nèi)容靜態(tài)化,用戶請(qǐng)求不需要經(jīng)過

應(yīng)用服務(wù)

3. 突然增大的服務(wù)器和網(wǎng)絡(luò)帶寬

假設(shè)商品頁面大小200K,10000個(gè)請(qǐng)求的帶寬就是2G。

解決方案:因?yàn)槊霘⑿略龅木W(wǎng)絡(luò)帶寬,必須和運(yùn)營商重新購買或者租借。為了減輕網(wǎng)站服務(wù)器的壓力,

需要將秒殺商品頁面緩存到CDN

4. 防止秒殺前下單

秒殺的游戲規(guī)則是到了秒殺才能開始對(duì)商品下單購買,在此時(shí)間點(diǎn)之前,只能瀏覽商品信息,不能下單。而下單頁面也是一個(gè)普通的URL,如果得到這個(gè)URL,不用等到秒殺開始就可以下單了。

解決方案:為了避免用戶直接訪問下單頁面URL,需要將改URL動(dòng)態(tài)化,即使秒殺系統(tǒng)的開發(fā)者也無法在秒殺開始前訪問下單頁面的URL。辦法是在下單頁面URL加入由服務(wù)器端生成的隨機(jī)數(shù)作為參數(shù),在秒殺開始的時(shí)候才能得到。

應(yīng)對(duì)策略

1. 獨(dú)立部署

和原有業(yè)務(wù)部署在不同服務(wù)器,防止高并發(fā)拖垮整個(gè)網(wǎng)站

2. 頁面靜態(tài)化

將商品詳情、描述靜態(tài)化到頁面

3. 租借秒殺網(wǎng)絡(luò)帶寬

向運(yùn)營商租借帶寬

4. 動(dòng)態(tài)生成隨機(jī)下單頁面URL

無法在秒殺前訪問下單頁面的URL:加入服務(wù)器端生成的隨機(jī)數(shù)作為參數(shù),在秒殺開始前才能得到

架構(gòu)設(shè)計(jì)

1. 控制秒殺購買頁面的點(diǎn)亮

購買按鈕只有在活動(dòng)開始的時(shí)候才能點(diǎn)亮,在此之前是灰色的。如果是動(dòng)態(tài)頁面,可以很容易解決這個(gè)問題,但為了減輕服務(wù)器端負(fù)載壓力,

更好的利用CDN、反向代理等性能優(yōu)化手段,

該頁面被設(shè)計(jì)為靜態(tài)頁面,緩存在CDN、反向代理服務(wù)器上,甚至用戶瀏覽器上。秒殺開始時(shí),用戶刷新頁面,請(qǐng)求根本不會(huì)到達(dá)應(yīng)用服務(wù)器。

解決方案:秒殺商品頁面加入一個(gè)javascript引用,該javascript中加入秒殺是否開始的標(biāo)志和下單頁面URL的隨機(jī)數(shù)參數(shù),該javascript使用隨機(jī)版本號(hào),不可被瀏覽器緩存

當(dāng)秒殺開始時(shí),生成一個(gè)新的javascript文件并被用戶瀏覽器加載

2. 允許第一個(gè)訂單提交

秒殺開始,由于最終能夠成功秒殺到商品的用戶只有一個(gè),因此需要在用戶提交訂單時(shí),檢查是否已經(jīng)有訂單提交。

解決方案:為了減輕下單頁面服務(wù)器的負(fù)載壓力,可以控制進(jìn)入下單頁面入口,只有先提交的少數(shù)用戶可進(jìn)入,后邊的用戶直接進(jìn)入秒殺結(jié)束頁面

下單服務(wù)器檢查本機(jī)已處理的下單請(qǐng)求數(shù)目

*如果超過10條,直接返回已結(jié)束頁面給用戶;

*如果未超過10條,則用戶可進(jìn)入填寫訂單及確認(rèn)頁面;

檢查全局已提交訂單數(shù)目

*已超過秒殺商品總數(shù),返回已結(jié)束頁面給用戶;

*未超過秒殺商品總數(shù),提交到子訂單系統(tǒng)。

這樣就大大地減少了數(shù)據(jù)庫的負(fù)載壓力。

那如何學(xué)習(xí)才能進(jìn)入一線互聯(lián)網(wǎng)公司呢?

歡迎工作一到五年的 Java 的工程師朋友們加入的 Java 架構(gòu)開發(fā):685167672

本群提供免費(fèi)的學(xué)習(xí)指導(dǎo)架構(gòu)資料以及免費(fèi)的解答

不懂得問題都可以在本群提出來之后還會(huì)有職業(yè)生涯規(guī)劃以及面試指導(dǎo)

最后,做一個(gè)愛思考,懂思考,會(huì)思考的程序員。



作者:美的讓人心動(dòng)
鏈接:https://www.jianshu.com/p/43dfc0d942f6
來源:簡書
簡書著作權(quán)歸作者所有,任何形式的轉(zhuǎn)載都請(qǐng)聯(lián)系作者獲得授權(quán)并注明出處。

總結(jié)

以上是生活随笔為你收集整理的阿里双十一秒杀系统架构设计,有哪些技术关键点?的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。