說秒殺系統(tǒng)其實(shí)更多的高級(jí)一點(diǎn)的知識(shí),不會(huì)太多的在業(yè)務(wù)上說明秒殺,那樣確實(shí)太浪費(fèi)時(shí)間,主要核心的點(diǎn),如何處理高并發(fā)系統(tǒng)調(diào)優(yōu),壓測(cè)。發(fā)現(xiàn)性能的瓶頸更好的調(diào)優(yōu)。還會(huì)說說高階的優(yōu)化。主要分享給大家針對(duì)互聯(lián)網(wǎng)分布式的高并發(fā)項(xiàng)目怎么去調(diào)優(yōu),快速定位,快速解決。主要說思路,明白了思路,如何去快速定位,快速解決。常用的調(diào)優(yōu)方案。
秒殺系統(tǒng)介紹
其實(shí)大家都經(jīng)常在網(wǎng)上購(gòu)物的,秒殺應(yīng)該都知道套路吧。
- 所謂“秒殺”,就是網(wǎng)絡(luò)賣家發(fā)布一些超低價(jià)格的商品,所有買家在同一時(shí)間網(wǎng)上搶購(gòu)的一種銷售方式。
- 特點(diǎn)-低價(jià),少量庫(kù)存,瘋搶。
吸引大家來搶購(gòu),也不至于自己虧的太多。博眼球。
- 高并發(fā),大流量。
念得出名字的互聯(lián)網(wǎng)公司基本都是高并發(fā),大流量。
- 雙十一秒殺系統(tǒng)實(shí)現(xiàn)介紹。
1.通過原有的下單增加三個(gè)變量完成,是否秒殺,開始時(shí)間,結(jié)束時(shí)間。
2.是否秒殺,是為了商品的展示。如果是秒殺商品的特殊判斷。
3.進(jìn)入頁面之前先進(jìn)入controller獲取一個(gè)當(dāng)前的后臺(tái)時(shí)間傳遞到前臺(tái),方便讀秒。
4.前端js判斷時(shí)間到達(dá)后進(jìn)行下單,下單時(shí)傳遞時(shí)間跟后端時(shí)間進(jìn)行對(duì)比,防止被高手修改時(shí)間強(qiáng)行下單。
5.對(duì)于庫(kù)存是通過下單的時(shí)間來判斷的,必須按照秒殺開始后的時(shí)間來進(jìn)行判斷,每次下單庫(kù)存都需要進(jìn)行判斷,防止超賣。 sql上邊的判斷:
update t_product set 庫(kù)存=庫(kù)存-1 and 商品id="ID號(hào)" and 庫(kù)存>0;數(shù)據(jù)庫(kù)防止絕對(duì)超賣。
6.忘了說了,必須判斷登錄,防止某個(gè)賬號(hào)惡意刷接口。
- 壓測(cè)
我磚都搬完了,自己點(diǎn)點(diǎn)沒問題了,還壓測(cè)個(gè)毛線啊,壓測(cè)都是測(cè)試人員的事情,我開發(fā)任務(wù)都堆成山了。
1.老鐵啊,老鐵,壓測(cè)其實(shí)很有必要,jmeter分分鐘就壓測(cè)了接口。
2.壓測(cè)可以讓自己不被坑,壓測(cè)還可以發(fā)現(xiàn)bug。
3.壓測(cè)可以讓你的代碼更健壯。
4.壓測(cè)可以找到業(yè)務(wù)和功能的bug。如果測(cè)試出來你的bug,可能罰錢,影響錢的問題。
- 了解幾個(gè)技術(shù)點(diǎn)
- 1.tps。t代表英文的事務(wù)。
- 2.qps。q代表查詢。
- QPS
Queries Per Second意思是“每秒查詢率”,是一臺(tái)服務(wù)器每秒能夠相應(yīng)的查詢次數(shù),是對(duì)一個(gè)特定的查詢服務(wù)器在規(guī)定時(shí)間內(nèi)所處理流量多少的衡量標(biāo)準(zhǔn)。
- TPS
TransactionsPerSecond的縮寫,也就是事務(wù)數(shù)/秒。它是軟件測(cè)試結(jié)果的測(cè)量單位。一個(gè)事務(wù)是指一個(gè)客戶機(jī)向服務(wù)器發(fā)送請(qǐng)求然后服務(wù)器做出反應(yīng)的過程。客戶機(jī)在發(fā)送請(qǐng)求時(shí)開始計(jì)時(shí),收到服務(wù)器響應(yīng)后結(jié)束計(jì)時(shí),以此來計(jì)算使用的時(shí)間和完成的事務(wù)個(gè)數(shù)。
PS:熟悉秒殺的原理,秒殺的開發(fā)思路,最好會(huì)用jmeter可以自己做做簡(jiǎn)單的壓測(cè)。