搶購、秒殺、抽獎、搶票等一般都會出現以下問題
1、對現有網站業務造成沖擊,秒殺活動只是網站營銷的一個附加活動,這個活動具有時間短,并發訪問量大的特點,如果和網站原有應用部署在一起,必然會對現有業務造成沖擊,稍有不慎可能導致整個網站癱瘓。
> 解決方案:將秒殺系統獨立部署,甚至使用獨立域名,使其與網站完全隔離。
2、用戶在秒殺開始前,通過不停刷新頁面以保證不會錯過秒殺,這些請求如果按照一般的網站應用架構,訪問應用服務器、連接數據庫,會對應用服務器和數據庫服務器造成負載壓力。
> 解決方案:重新設計秒殺商品頁面,不使用網站原來的商品詳細頁面,商品相關數據使用緩存,商品頁面內容靜態化
3、假設商品頁面大小200K(主要是商品圖片大小),那么需要的網絡和服務器帶寬是2G(200K×10000),這些網絡帶寬是因為秒殺活動新增的,超過網站平時使用的帶寬。
> 解決方案:因為秒殺新增的網絡帶寬,必須和運營商重新購買或者租借。為了減輕網站服務器的壓力,需要將秒殺商品頁面緩存在CDN,同樣需要和CDN服務商臨時租借新增的出口帶寬。
>
4、超賣現象,庫存數量是有限的,如果同時下單人數超過了庫存數量,就會導致商品超賣問題
解決方案:
要解決“超搶/超賣”的問題,核心在于保證檢查庫存時的操作是依次執行的,也就是串行的,即使有很多用戶同時到達,也是一個個檢查并給與搶購資格,一旦庫存搶盡,后面的用戶就無法繼續了。
~~~
//下面是偽代碼
//開搶前redis設置商品總庫存list列表
for($i=0;$i<$goods_store;$i++)
\Redis::lpush('goods_store',1);
//開啟秒殺
$user_id = \Session::get('user_id');//當前搶購用戶id
$count=\Redis::lpop('goods_store');// 移出并獲取列表的第一個元素 相當于商品總庫存減去1 這里是原子性操作 不存在并發問題
if(!$count)
return '已經搶光了哦';
$result = \Redis::lpush('order:1',$user_id);// 記錄搶購成功信息
if($result)
返回給前端 搶購成功 然后跳轉另一個頁面下單處理
~~~

文章來源:
https://www.cnblogs.com/andy-zhou/p/5364136.html
https://www.cnblogs.com/phpper/p/7085663.html
https://mp.weixin.qq.com/s?__biz=MjM5NDM4MDIwNw==&mid=2448834705&idx=1&sn=25cf3d4f6d6826e564a634901189eb8f
- 前言
- 函數參考
- Socket 函數
- socket_accept
- socket_bind
- socket_clear_error
- socket_close
- socket_connect
- socket_create_listen
- socket_create_pair
- socket_create
- socket_getpeername
- socket_getsockname
- socket_last_error
- socket_listen
- socket_read
- socket_recv
- socket_select
- socket_send
- socket_set_block
- socket_set_nonblock
- SplQueue
- 魔術方法
- 魔術常量
- 雜項
- backlog的用處
- new self()和new static()的區別
- PHP變量的生命周期
- PHP抽象類
- 對象接口
- PHP中的常用關鍵字
- 常量
- 內存泄露
- global 與 $GLOBAL
- 簡單說明CGI和動態請求是什么
- 設計模式
- 單例模式
- 工廠模式
- 適配器模式
- 策略模式
- 觀察者模式
- 控制反轉IoC簡介
- session
- use_trans_sid
- auto_start
- session_id
- cookie_secure
- 面試
- 數據庫相關
- 語句相關
- 索引相關
- 字段相關
- PHP相關
- 字符串相關
- 函數相關
- 運算符優先級相關
- 錯誤相關
- redis相關
- 10個常見的Redis面試"刁難"問題
- mysql
- MySQL中的鎖
- MySQL存儲引擎MyISAM 和 InnoDB的區別
- MySQL半同步復制
- explain 命令詳解
- 索引
- 數據庫事務
- MySQL和B樹的那些事
- git
- github----向開源框架提交pr的過程
- 推薦博客
- linux
- 命令
- free
- 高并發
- 搶購/秒殺功能
- 算法
- 一致性Hash算法