商城特殊活動(內含秒殺)系統(tǒng)

商城特殊活動架構.png

特殊活動構成模塊

  • 驗證碼
    • 產生驗證碼
      • 初始化產生100個驗證碼送悔,每次按照當前時間ms%100獲取一個驗證碼扯再,保存至tair传黄,超時為x分鐘
      • 這里的校驗碼類似于token连茧,每次請求都隨機分配一個用戶唯一的token并且保存至tair核蘸,這個token還有圖片顯示給前端
      • 用戶需要手動輸入這個圖片里的驗證碼
      • 這樣秒殺拼的系統(tǒng)是(分流不至于單點壓力,提高機器人刷單行為成本)
        1. 用戶點擊秒殺按鈕的速度
        2. 快速識別驗證碼和輸入驗證碼的速度
    • 校驗驗證碼
      • 發(fā)獎時要拿這個token對tair內token進行校驗(覺得這個流程體驗很不好)
    • 應該是token的生成和校驗都是 代碼自動做的啸驯,不需要額外的用戶交互
  • 活動模塊信息(商品列表)
    • 一個活動下面包含多個模塊
    • 秒殺品模塊客扎,推薦品模塊(商品)[為了導流],其他模塊(主題商品館)[不一定需要]罚斗,秒殺場次模塊時間表
    • 包含的spu類型有, 優(yōu)惠券/實物
    • 秒殺品應該只是spu/sku的特殊類型徙鱼,當秒殺時間過期后,商品應該自動變?yōu)槠胀ǖ膕pu/sku(我們現(xiàn)在的系統(tǒng)并不是這樣的针姿,而是單獨把秒殺品和非秒殺品的訂單流程分開袱吆,造成秒殺品訂單不可逆)
    • 秒殺品只能是 b2c產品
    • 秒殺品的庫存應該是 spu下面的sku對應總和,而我們的系統(tǒng)是將spu中的第一個sku作為賣品距淫,而沒有將spu中不同規(guī)格商品進行細分
  • 秒商品列表模塊SPU庫存信息
    • 單獨module 下 spu list 庫存信息查詢接口
    • 批量獲取一個module 下所有spu 的庫存绞绒,保存至tair
  • 獲取秒殺品詳情
    • 商品信息(但是不顯示秒殺品剩余庫存信息)
  • 準備參與秒殺(京東\阿里的秒殺是不需要輸入驗證碼)
    • 獲取校驗碼
    • 正確輸入校驗碼
  • 參與秒殺
    • 現(xiàn)有實現(xiàn)秒殺品到點前不允許搶購
    • 點擊搶購后需要校驗 token,風控 -> 扣減庫存 -> 記錄用戶令牌 -> 記錄用戶參與信息( 這里采用單向鏈表模型榕暇,向后自動調用)
    • toke 校驗蓬衡,防止刷單,降低并發(fā)請求(就是一個驗證碼)
    • 風控 判斷用戶userId/設備deviceId是否已經參與過彤枢,用tair保存
    • 扣取 庫存計數(shù)器 同時會將 spu 狀態(tài)也保存在tair中狰晚,如果庫存被扣完,則更新spu緩存狀態(tài)缴啡,減少計數(shù)器壓力[這里由于采用@Cacheable的方法壁晒,無法立即更新,spu的狀態(tài)可能會需要本地緩存自動更新]
    • 發(fā)放用戶令牌 生成用戶唯一令牌
    • 記錄用戶/設備記錄 防止用戶重復參與业栅,15分鐘內不允許再使用
  • 創(chuàng)建秒殺訂單
    • 我們將秒殺品下單獨立了一個判斷
    • 秒殺品不允許使用 健康金/優(yōu)惠券/購物卡(京東是允許使用)坑比[非秒殺品, 是可以調用促銷中心計算促銷后訂單金額]
    • 正常下單后秒咐,對用戶進行風控(同一個設備,同一個用戶碘裕,同一個spu携取,同一天內,n分鐘內娘汞,只允許購買n次)[比較合理的控制是歹茶,一個秒殺品,只允許用戶購買n次]
    • 由于采用同步調用創(chuàng)建訂單服務,失敗有多種原因惊豺,如果由于庫存/商品不可用的原因燎孟,則立即清空緩存內的庫存計數(shù)器。(這種原因是使用分桶策略尸昧,有可能有些分桶還存在庫存揩页,但是總庫存已經不足,這時候應該馬上清空全部分桶庫存烹俗,同時將整個spu/sku置為不可用)

第三方組件選型

  • 緩存 Spring-Cache管理
    • 本地緩存 EhCache
      • 場次產品信息緩存全量至本地 每隔 n分鐘, 重新從 db/第三方緩存 更新一次[這里面有n分鐘的管理信息同步問題]
        • 可以做一個全局監(jiān)控爆侣,當管理端刷新后,監(jiān)控觸發(fā)自動更新本地緩存[我們還沒做這一個]
        • 采用 spring 4.2.x幢妄,存在 expire 后穿透至第三方緩存問題
    • 第三方緩存 Tair[支持持久化和非持久化]
      • 持久化 重要數(shù)據(jù), 秒殺商品兔仰,庫存(保存總庫存/按策略分桶保存庫存)
      • 非持久化
  • MQ RocketMQ
    • HessianUtils 對數(shù)據(jù)進行壓縮
    • 注意 consumer/producer 之間序列化Object的問題,package path不對無法匹配

特殊活動應用設計的內容

  • 場次+獎品(商品/現(xiàn)金)=活動
    • 獎品分為 商品蕉鸳,現(xiàn)金乎赴,優(yōu)惠券
      • 獎品 綁定場次,獎品不能多個場次共用(個人覺得不合理)潮尝,現(xiàn)有方案認為運營的工作量能忍受榕吼,我個人覺得模型上有問題
      • 獎品 有時效性
        • 我的理解,當前獎品的時效性和優(yōu)惠券的時效性沖突(如何確定真實時效性)勉失,但是實物(現(xiàn)金)又沒有時效性需要獎品時間來控制(沒理解)羹蚣。
        • 業(yè)務的時效性 又被理解為活動后臺允許獲取獎品的時間段,細分了每個獎品適用的范圍段
    • 商品(spu)
      • 實物
        • 以抵用券的形式發(fā)放
      • 虛擬物(具體的物品詳細到 sku)
        • 主客優(yōu)惠券(使用) - 賣家承擔成本
        • 話費充值卡
        • 流量充值卡
        • 主客無門檻券 - 商城承擔成本
        • 抵用券 協(xié)商商戶
    • 現(xiàn)金
      • 需要獨立現(xiàn)金紅包系統(tǒng)
      • 需要實現(xiàn) 賬本 等等實現(xiàn)
    • 優(yōu)惠券
      • 優(yōu)惠券系統(tǒng)
      • 一個場次只會有一類優(yōu)惠券
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末乱凿,一起剝皮案震驚了整個濱河市顽素,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌告匠,老刑警劉巖戈抄,帶你破解...
    沈念sama閱讀 210,978評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件离唬,死亡現(xiàn)場離奇詭異后专,居然都是意外死亡,警方通過查閱死者的電腦和手機输莺,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,954評論 2 384
  • 文/潘曉璐 我一進店門戚哎,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人嫂用,你說我怎么就攤上這事型凳。” “怎么了嘱函?”我有些...
    開封第一講書人閱讀 156,623評論 0 345
  • 文/不壞的土叔 我叫張陵甘畅,是天一觀的道長。 經常有香客問我,道長疏唾,這世上最難降的妖魔是什么蓄氧? 我笑而不...
    開封第一講書人閱讀 56,324評論 1 282
  • 正文 為了忘掉前任,我火速辦了婚禮槐脏,結果婚禮上喉童,老公的妹妹穿的比我還像新娘。我一直安慰自己顿天,他們只是感情好堂氯,可當我...
    茶點故事閱讀 65,390評論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著牌废,像睡著了一般咽白。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上鸟缕,一...
    開封第一講書人閱讀 49,741評論 1 289
  • 那天局扶,我揣著相機與錄音,去河邊找鬼叁扫。 笑死三妈,一個胖子當著我的面吹牛,可吹牛的內容都是我干的莫绣。 我是一名探鬼主播畴蒲,決...
    沈念sama閱讀 38,892評論 3 405
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼对室!你這毒婦竟也來了模燥?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 37,655評論 0 266
  • 序言:老撾萬榮一對情侶失蹤掩宜,失蹤者是張志新(化名)和其女友劉穎蔫骂,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體牺汤,經...
    沈念sama閱讀 44,104評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡辽旋,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,451評論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了檐迟。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片补胚。...
    茶點故事閱讀 38,569評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖追迟,靈堂內的尸體忽然破棺而出溶其,到底是詐尸還是另有隱情,我是刑警寧澤敦间,帶...
    沈念sama閱讀 34,254評論 4 328
  • 正文 年R本政府宣布瓶逃,位于F島的核電站束铭,受9級特大地震影響,放射性物質發(fā)生泄漏厢绝。R本人自食惡果不足惜纯露,卻給世界環(huán)境...
    茶點故事閱讀 39,834評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望代芜。 院中可真熱鬧埠褪,春花似錦、人聲如沸挤庇。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,725評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽嫡秕。三九已至渴语,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間昆咽,已是汗流浹背驾凶。 一陣腳步聲響...
    開封第一講書人閱讀 31,950評論 1 264
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留掷酗,地道東北人调违。 一個月前我還...
    沈念sama閱讀 46,260評論 2 360
  • 正文 我出身青樓,卻偏偏與公主長得像泻轰,于是被迫代替她去往敵國和親技肩。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,446評論 2 348

推薦閱讀更多精彩內容