成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

阿里云Redis讀寫分離典型場景:如何輕松搭建電商秒殺系統(tǒng)

存儲 存儲軟件 Redis
秒殺活動是絕大部分電商選擇的低價促銷,推廣品牌的方式。不僅可以給平臺帶來用戶量,還可以提高平臺知名度。一個好的秒殺系統(tǒng),可以提高平臺系統(tǒng)的穩(wěn)定性和公平性,獲得更好的用戶體驗,提升平臺的口碑,從而提升秒殺活動的最大價值。

 背景

秒殺活動是絕大部分電商選擇的低價促銷,推廣品牌的方式。不僅可以給平臺帶來用戶量,還可以提高平臺知名度。一個好的秒殺系統(tǒng),可以提高平臺系統(tǒng)的穩(wěn)定性和公平性,獲得更好的用戶體驗,提升平臺的口碑,從而提升秒殺活動的***價值。

本次主要討論阿里云云數(shù)據(jù)庫Redis緩存設(shè)計高并發(fā)的秒殺系統(tǒng)。

[[249551]]

秒殺的特征

秒殺活動對稀缺或者特價的商品進(jìn)行定時,定量售賣,吸引成大量的消費(fèi)者進(jìn)行搶購,但又只有少部分消費(fèi)者可以下單成功。因此,秒殺活動將在較短時間內(nèi)產(chǎn)生比平時大數(shù)十倍,上百倍的頁面訪問流量和下單請求流量。

秒殺活動可以分為3個階段:

秒殺前:用戶不斷刷新商品詳情頁,頁面請求達(dá)到瞬時峰值。

秒殺開始:用戶點(diǎn)擊秒殺按鈕,下單請求達(dá)到瞬時峰值。

秒殺后:一部分成功下單的用戶不斷刷新訂單或者產(chǎn)生退單操作,大部分用戶繼續(xù)刷新商品詳情頁等待退單機(jī)會。

消費(fèi)者提交訂單,一般做法是利用數(shù)據(jù)庫的行級鎖。只有搶到鎖的請求可以進(jìn)行庫存查詢和下單操作。但是在高并發(fā)的情況下,數(shù)據(jù)庫無法承擔(dān)如此大的請求,往往會使整個服務(wù)blocked,在消費(fèi)者看來就是服務(wù)器宕機(jī)。

秒殺系統(tǒng)

系統(tǒng)架構(gòu)圖

阿里云Redis讀寫分離典型場景:如何輕松搭建電商秒殺系統(tǒng)

 

秒殺系統(tǒng)的流量雖然很高,但是實際有效流量是十分有限的。利用系統(tǒng)的層次結(jié)構(gòu),在每個階段提前校驗,攔截?zé)o效流量,可以減少大量無效的流量涌入數(shù)據(jù)庫。

利用瀏覽器緩存和CDN抗壓靜態(tài)頁面流量

秒殺前,用戶不斷刷新商品詳情頁,造成大量的頁面請求。所以,我們需要把秒殺商品詳情頁與普通的商品詳情頁分開。對于秒殺商品詳情頁盡量將能靜態(tài)化的元素盡量靜態(tài)化處理,除了秒殺按鈕需要服務(wù)端進(jìn)行動態(tài)判斷,其他的靜態(tài)數(shù)據(jù)可以緩存在瀏覽器和CDN上。這樣,秒殺前刷新頁面導(dǎo)致的流量進(jìn)入服務(wù)段的流量只有很小的一部分

利用阿里云讀寫分離Redis緩存攔截流量

CDN是***級流量攔截,第二級流量攔截我們使用支持讀寫分離的阿里云Redis。在這一階段我們主要讀取數(shù)據(jù),讀寫分離Redis能支持高大60萬以上qps的,完全可以支持需求。

首先通過數(shù)據(jù)控制模塊,提前將秒殺商品的緩存到阿里云讀寫分離Redis,并設(shè)置秒殺開始標(biāo)記:

阿里云Redis讀寫分離典型場景:如何輕松搭建電商秒殺系統(tǒng)

 

秒殺開始前,服務(wù)集群讀取goodsId_Start為0,直接返回未開始。

數(shù)據(jù)控制模塊將goodsId_start改為1,標(biāo)志秒殺開始。

服務(wù)集群緩存開始標(biāo)記位并開始接受請求,并記錄到redis中g(shù)oodsId_access,商品剩余數(shù)量為(goodsId_count - goodsId_access)。

當(dāng)接受下單數(shù)達(dá)到goodsId_count后,繼續(xù)攔截所有請求,商品剩余數(shù)量為0

可以看出,***成功參與下單的請求只有少部分可以被接受。在高并發(fā)的情況下,允許稍微多的流量進(jìn)入。因此可以控制接受下單數(shù)的比例。

利用阿里云主從版Redis緩存加速庫存扣量

成功參與下單,進(jìn)入下層服務(wù),開始進(jìn)行訂單信息校驗,庫存扣量。為了避免直接訪問數(shù)據(jù)庫,我們使用阿里云主從版Redis來進(jìn)行庫存扣量,阿里云主從版Redis提供10萬級別的QPS。我們使用Redis來優(yōu)化庫存查詢,提前攔截秒殺失敗的請求,將大大提高系統(tǒng)的整體吞吐量。我們也是通過數(shù)據(jù)控制模塊提前將庫存存入Redis;

//我們將每個秒殺商品在redis中用一個hash結(jié)構(gòu)表示

阿里云Redis讀寫分離典型場景:如何輕松搭建電商秒殺系統(tǒng)

 

扣量時,服務(wù)器通過請求Redis獲取下單資格,我們通過lua腳本實現(xiàn),由于Redis時單線程模型,lua可以保證多個命令的原子性;

lua腳本:

阿里云Redis讀寫分離典型場景:如何輕松搭建電商秒殺系統(tǒng)

 

先使用SCRIPT LOAD將lua腳本提前緩存在Redis,然后調(diào)用EVALSHA調(diào)用腳本,比直接調(diào)用EVAL節(jié)省網(wǎng)絡(luò)帶寬:

阿里云Redis讀寫分離典型場景:如何輕松搭建電商秒殺系統(tǒng)

 

秒殺服務(wù)通過判斷Redis是否返回?fù)屬弬€數(shù)n,即可知道此次請求是否扣量成功。

使用阿里云主從版Redis實現(xiàn)簡單的消息隊列異步下單入庫

扣量完成后,需要進(jìn)行訂單入庫。如果商品數(shù)量較少的時候,直接操作數(shù)據(jù)庫即可。如果秒殺的商品是1萬,甚至10萬級別,那數(shù)據(jù)庫鎖沖突將帶來很大的性能瓶頸。因此,利用消息隊列組件,當(dāng)秒殺服務(wù)將訂單信息寫入消息隊列后,即可認(rèn)為下單完成,避免直接操作數(shù)據(jù)庫。

消息隊列組件依然可以使用Redis實現(xiàn),在R2中用list數(shù)據(jù)結(jié)構(gòu)表示:

阿里云Redis讀寫分離典型場景:如何輕松搭建電商秒殺系統(tǒng)

 

將訂單內(nèi)容寫入Redis:

阿里云Redis讀寫分離典型場景:如何輕松搭建電商秒殺系統(tǒng)

 

異步下單模塊從Redis中順序獲取訂單信息,并將訂單寫入數(shù)據(jù)庫:

阿里云Redis讀寫分離典型場景:如何輕松搭建電商秒殺系統(tǒng)

 

我們通過使用Redis作為消息隊列,異步處理訂單入庫,有效的提高了用戶的下單完成速度。

數(shù)據(jù)控制模塊,管理秒殺數(shù)據(jù)同步

最開始,我們利用阿里云讀寫分離Redis進(jìn)行流量限制,只讓部分流量進(jìn)入下單。對于下單檢驗失敗和退單等情況,我們需要讓更多的流量進(jìn)來。因此,數(shù)據(jù)控制模塊需要定時將數(shù)據(jù)庫中的數(shù)據(jù)進(jìn)行一定的計算,同步到主從版Redis,同時再同步到讀寫分離的Redis,讓更多的流量進(jìn)來。

責(zé)任編輯:武曉燕 來源: 今日頭條
相關(guān)推薦

2013-11-07 13:22:09

電商云阿里云京東云

2023-06-09 21:00:00

2012-08-08 11:16:27

云計算電商阿里

2018-01-26 14:24:15

華為云

2015-06-03 18:28:09

跨境電商rackspace

2019-09-30 09:19:54

Redis分離云數(shù)據(jù)庫

2012-10-26 15:11:56

云計算Puppet

2013-09-18 16:12:35

2013-10-15 10:12:02

2021-10-22 19:21:33

華為云

2015-03-05 15:47:31

云計算電商

2016-06-12 16:44:44

電商

2020-02-28 19:06:21

緩存讀寫Redis

2010-05-17 11:19:44

MySQL proxy

2015-11-19 10:50:17

阿里巴巴莊卓然電商

2021-07-08 11:47:02

Saleor開源電子商務(wù)平臺

2015-12-23 18:05:43

京東電商云

2016-09-26 20:33:48

浪潮服務(wù)器

2015-05-15 15:25:44

微軟
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 91精品国产综合久久婷婷香蕉 | 成人一区二 | 7799精品视频天天看 | 日韩一区在线视频 | 一二区成人影院电影网 | 手机在线一区二区三区 | 日本精品一区二区三区在线观看视频 | 99re在线观看 | 99日韩| 亚洲视频在线播放 | 久久精品成人 | 亚洲国产一区在线 | 一区二区视频在线观看 | 亚洲高清视频在线观看 | 毛片一级片| 在线激情视频 | 亚洲日本中文字幕在线 | 日本精品一区二区三区在线观看视频 | 日韩在线精品视频 | 特级一级黄色片 | 色吊丝在线| 欧美午夜精品久久久久久浪潮 | 国产精品一区二区三区在线 | 美女爽到呻吟久久久久 | 毛片免费看的 | 99在线国产 | 亚洲欧美一区二区在线观看 | av网址在线播放 | 玖玖视频免费 | 亚洲不卡在线观看 | 欧美精品区| 欧美性网 | 久久国产免费看 | 97免费在线观看视频 | 国产精品视频综合 | 欧美成人h版在线观看 | 天天爽天天操 | 天天射夜夜操 | 日韩在线播放一区 | 日韩在线 | 在线观看国产 |