亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

PHP庫存問題

PHP庫存問題

PHP
慕尼黑8549860 2019-03-18 17:56:25
秒殺這種走reids隊列,那日常的商品庫存問題,要如何避免超賣??慈思艺f用行鎖,但是比方說我們現在購物車里面20多件商品,是不是開啟事物之后對這20件商品都鎖定,那如果業務邏輯繁瑣的話,到事物提交超過2秒左右,會不會對mysql造成很大壓力?
查看完整描述

6 回答

?
慕田峪7331174

TA貢獻1828條經驗 獲得超13個贊

思路大致和樓上的差不多,但是這種 如果有高并發的話 和服務器 架構會有很大的影響,比如 cdn 和負載均衡,如果有問題 ,很容易導致超發

查看完整回答
反對 回復 2019-03-18
?
MMTTMM

TA貢獻1869條經驗 獲得超4個贊

超買這種問題,是無法完全避免的,不能僅僅在技術上做超賣問題的限定。綜合購物體驗,并發情況下效率等情況。在購物流程和規則上也要做優化,像你說的非秒殺情況,正常售賣提前提示買家庫存可能不夠充足,可能會延期發貨什么的。
另外樓上說的一些解決方案,也都無法避免一些惡意操作的。
例如:提交訂單或者加購物車占庫存,存在惡拍風險。

 付款后更新庫存,就會存在超賣風險。

因此,個人認為,除了在技術層面用鎖機制和事務操作也好,或是走隊列機制等等做好超賣預防措施外,也要在購物規則上做一定的優化,畢竟,這不是秒殺這種虧本賺吆喝的活動,理論上這些日常商品是不限購的,考慮到實際庫存提示延期發貨等。

查看完整回答
反對 回復 2019-03-18
?
MM們

TA貢獻1886條經驗 獲得超2個贊

購物車中的商品應該是在假如購物車之前做一次判斷,在實際提交訂單在做一次判斷,實際提交訂單完成之后才更新庫存。這個邏輯才是合理的。redis中緩存一個num數量,大量的判斷落在redis中,真的更新庫存之后同步更新掉redis中的字段值。這樣能緩解mysql的壓力,提交訂單的請求依舊是走redis隊列。

查看完整回答
反對 回復 2019-03-18
  • 6 回答
  • 0 關注
  • 677 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號