国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

高并發下如何防止用戶重復下單的解決方案

開發 前端
Redis的setnx命令的特性:當它保存一個key和value的時候,如果這個value在Redis中沒有值,那么Redis就會返回true,并且保存成功;如果這個value它有值,那么就會返回false。

在我們實際的業務中,用戶在下單頁面進行下單時,由于用戶在短時間內多次點擊下單按鈕或服務自身的重試策略、網絡阻塞等問題,都可能會導致在訂單服務中接收到了同一個用戶的多個同樣的下單請求,進而造成重復下單問題。下面介紹幾種常見的解決用戶重復下單的問題的方案。

1、分析重復下單問題

圖片

正常的一次下單流程是:首先會由用戶發起一個下單操作,然后由訂單服務去保存一條訂單信息(此時訂單的狀態是未支付),隨后由用戶去確認訂單,此時支付服務把將訂單狀態改為待支付,然后支付服務跳轉到三方的支付界頁面供用戶去支付,當用戶支付完成之后,由支付平臺進行回調,回調到支付服務后,支付服務再去通知訂單服務去修改訂單的狀態為已支付。

在整個下單過程中,用戶支付的時候,其實是由第三方的支付平臺來進行負責冪等性問題,所以對于我們來講,真正需要我們保證冪等性問題的創建訂單這一步,因為用戶點擊了多次下單按鈕,如果沒有做防重處理,那訂單服務就會生成多條訂單信息(多次下單請求中只有一次請求是有效的)。

對于生成的無效訂單不僅給系統造成了資源的浪費,而且對用戶的體驗也不好,同時對品牌聲譽損害。

2、冪等性的解決方案

2.1、前端攔截方案

當用戶點擊了“購買”按鈕第一次之后,就把這個按鈕置為不可用,防止用戶點擊了多次,如下圖所示:

圖片圖片

這種前端處理的方式只能處理一部分防止重復下單的問題,如果用戶不是通過頁面請求下單,而是直接調用后端接口的方式創建訂單,那么前端攔截就無用了。

2.2、借助Redis的setnx方案

Redis的setnx命令的特性:當它保存一個key和value的時候,如果這個value在Redis中沒有值,那么Redis就會返回true,并且保存成功;如果這個value它有值,那么就會返回false。那么,我們利用Redis的setnx命令的這個特性就可以保證多次操作只能存儲一次值。具體的實現方案如下圖所示:

圖片圖片

當用戶進行下單的時候,我們就可以通過給當前這個用戶分配一個唯一的key來調用setnx命令,key的設計方案如下所示:

圖片圖片

用戶登錄成功之后會有一個用戶的唯一標識Token,我們用Token表示這個用戶;用戶購買某個商品,我們使用商品對應的URL來表示這個商品;最后加一個特定的key(自定義一個常量字符串標識),目的是我們不敢保證當前的這個頁面上是不是只有下單這一個操作需要保證冪等性,有可能還有其他的業務操作,所以加特定的key作為區分。

即使當用戶調用多次下單接口的時候,也只會下單成功一次,那么多余 的無效請求都會下單失敗。當然setnx還需要設置一個過期時間,(如設置成5秒,因為正常的用戶在短時間之內基本上是不可能有這么快的速度能夠重復的去購買這個商品),此時在過期時間內的重復請求我們也不處理,這樣就可以防止重復下單。

2.3、借助Redis的防重Token方案

在用戶打開訂單確認的界面時,除了返回訂單的業務數據外,服務端還會生成一個防重token(簡單一點的防重token就使用UUID),同時設置防重token的過期時間并存儲到Redis中,如下圖所示:

圖片圖片

服務端需要將這個防重token和業務數據一起返回給客戶端,當用戶點擊創建訂單時,下單請求攜帶防重token一起提交服務端,服務端會通過這個防重token來查詢Redis當前的防重Token是否存在:

(1)如果防重Token存在,說明這個請求是有效的,此時我們可以刪除Redis中的防重token(這里需要使用分布式鎖來保證同一個用戶在同一個商品中的同時只有一個請求執行),然后接下來就允許用戶的這個請求創建訂單。

(2)如果防重token已經不存在,那么就認為這個請求是重復的請求,直接不處理(或者打印日志記錄)。

總結:

(1)在實際的應用場景中,前端攔截結合后端的后端的兩種方案中的任意一種,前后端相互配合解決重復下單問題。

(2)建議增加數據庫的兜底方案,即就是通過數據庫自身的唯一約束的解決方案,整理出業務的唯一標識(如訂單id)作為唯一鍵。

責任編輯:武曉燕 來源: 龍蝦編程
相關推薦

2025-12-23 08:23:31

2012-04-24 09:30:57

淘寶開發

2024-08-06 08:13:26

2025-04-27 01:22:00

QPS高并發MySQL

2023-10-13 08:11:22

2023-07-19 07:51:43

Redis緩存高可用

2024-10-31 09:04:20

Spring高并發

2022-09-03 23:18:46

Order服務負載均衡

2018-05-28 14:37:05

數據庫NoSQL高并發

2022-06-12 06:45:26

高并發防重

2017-11-27 08:50:29

架構數據存儲

2024-02-02 11:24:00

I/O高并發場景

2014-08-08 13:30:44

Nginx

2013-01-30 10:12:24

NginxNginx優化高并發

2025-02-20 00:01:00

2020-07-15 08:14:12

高并發

2025-02-26 08:20:18

2010-12-01 11:53:07

2025-12-16 02:00:00

2024-01-02 14:18:59

點贊
收藏

51CTO技術棧公眾號

粉嫩av一区| av在线中文| 校花撩起jk露出白色内裤国产精品| 成人黄页毛片网站| 欧美一区二区三区免费观看视频| 91成人在线免费观看| 久久综合色播| 日本不卡一二三| 天天躁日日躁成人字幕aⅴ| 欧美日韩a区| 中文字幕一区av| 久久亚洲精品一区| 亚洲一级网站| 另类激情亚洲| 国产精品456露脸| 国产视频亚洲色图| 在线不卡中文字幕| 欧美一级bbbbb性bbbb喷潮片| 1024在线视频| 成人福利视频网站| 蜜桃视频日韩| 欧美色蜜桃97| 欧美一区二区在线观看| 成视人a免费观看视频| 中文字幕在线高清| 欧美wwwxxxx| 在线免费看av| 蜜臀精品久久久久久蜜臀| 中文字幕v亚洲ⅴv天堂| 成人激情久久| 日日噜噜噜夜夜爽亚洲精品| 国产精品中文在线| 国产精品后入内射日本在线观看| 精品毛片免费观看| 伊人伊人伊人久久| 97久久中文字幕| 亚洲欧洲免费视频| 国产成年精品| 欧美亚洲日本黄色| 68国产成人综合久久精品| 欧美中文字幕一区| 超级碰碰不卡在线视频| 国产成人啪免费观看软件 | 香蕉影视欧美成人| 韩国免费在线视频| 伊人久久久久久久久久久| 成年美女网站| 久久亚洲天堂| 欧美黄色性生活| 羞羞答答成人影院www| 91人人爽人人爽人人精88v| av电影高清在线观看| 欧美午夜精品一区二区三区电影| 天天综合天天综合色| 久热国产精品视频一区二区三区| 丝袜老师办公室里做好紧好爽 | 国产成人a亚洲精品| 亚洲日韩视频| 深夜福利视频在线免费观看| 国产综合在线观看视频| 欧美性黄网官网| 国产精品mv在线观看| 精品国产乱码久久久久久丨区2区| 亚洲视频中文字幕| 精品国产丝袜高跟鞋| 91丨九色丨国产| 亚洲成va人在线观看| 韩漫成人漫画| 欧美日韩国产成人高清视频| 久久国产精品亚洲人一区二区三区| 国产网站在线免费观看| 亚洲精品免费在线视频| 亚洲超碰精品一区二区| 要久久爱电视剧全集完整观看| 开心丁香婷婷深爱五月 | 4438全国成人免费| 国产91精品一区二区麻豆网站| 午夜成人影视| 97精品国产露脸对白| 国产精品久久久久久久久久久久久久| 国模套图日韩精品一区二区| 欧美日韩高清影院| 国产精品免费99久久久| av亚洲免费| 亚洲污视频在线观看| 精品国产污污免费网站入口| 精品美女一区| 欧美日韩精品久久| 精品久久久久久中文字幕一区奶水| 国产小视频在线观看| 日韩美女天天操| 欧洲三级视频| 亚洲成人av在线| 亚洲精品视频啊美女在线直播| 久久精品资源| 视色视频在线观看| 欧美色综合久久| 欧美视频不卡| av蜜臀在线| 不卡的av中文字幕| 日韩三级视频在线观看| 久久精品一区| 亚州精品视频| 另类视频一区二区三区| jizzzz日本| 欧美极品视频一区二区三区| 2019日本中文字幕| 亚洲色图色老头| 中日韩男男gay无套| 亚洲理论电影片| 日本精品网站| 男人本色网站| 91久久国产综合久久蜜月精品| 日韩三级.com| 亚洲三级小视频| 精品国产影院| gogo高清免费视频| 97视频免费观看| 亚洲精品五月天| 日韩一级毛片| 800av在线免费观看| 亚洲黄色有码视频| 黑人狂躁日本妞一区二区三区| 99久久99久久精品免费观看| 欧美激情欧美| 亚洲精品视频一二三区| 肉体视频在线| 最新在线地址| 国产精品2018| 2018国产精品视频| 欧美性受极品xxxx喷水| 在线成人动漫av| 佐佐木明希av| 欧美中文字幕亚洲一区二区va在线| 日韩系列欧美系列| www成人免费视频| 欧美激情一区二区三区久久久| 捆绑变态av一区二区三区| 美女日批视频在线观看| 精品国产乱码久久久久久88av| 91黄色免费看| 日韩精品不卡一区二区| 黄色网址三级| 亚洲综合日韩在线| 欧美视频裸体精品| 国产精品综合色区在线观看| 1769在线观看| 正在播放国产精品| 日韩精品一区二区视频| av在线播放不卡| 精品一区二区三区四区五区 | 国产精品美女久久久久av超清| 国产日韩精品久久久| 亚洲图色一区二区三区| 无码无遮挡又大又爽又黄的视频| 亚洲天堂一区二区三区| 国产欧美一区二区三区在线看蜜臀| 亚洲免费看片| 亚州黄色一级| 亚洲r级在线观看| 欧美大片在线观看一区二区| 日韩 欧美一区二区三区| 青青国产精品| 免费看国产黄色片| 亚洲最大av网站| 欧美日韩国产区一| 国产激情偷乱视频一区二区三区| 亚洲综合在线电影| a视频v在线| 成人精品久久久| 亚洲精品一区二区三区蜜桃下载| 狠狠狠色丁香婷婷综合激情| 精品国产乱子伦一区二区| 黄网站app在线观看下载视频大全官网| 国产91视觉| 日韩精品免费在线视频| 亚洲日穴在线视频| 午夜欧美理论片| 久久三级毛片| 蜜桃av成人| 久久久久久久香蕉| 91精品国产高清| 日韩欧美国产wwwww| 成人精品免费网站| 国产精品传媒精东影业在线| 91精品久久| 另类图片激情| 成人aaaa免费全部观看| 综合一区在线| 88xx成人免费观看视频库| 欧美另类极限扩张| 亚洲欧洲免费无码| 欧美一级淫片videoshd| 欧美中文一区二区三区| 日本视频一区二区三区| 精品久久免费| 青青草超碰在线| 色诱视频在线观看| 国产精品久久一区二区三区| 久久免费观看视频|