国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

老火 給大家說兩句自己簡單實現秒殺思路

2019-11-11 05:03:23
字體:
來源:轉載
供稿:網友

大家應該都知道,秒殺為啥  用  異步隊列 這種形式來處理吧?哈哈 因為我們寫的程序功能之前常理都是  用戶請求到后臺,后臺操作數據庫進行實現相應功能。

上邊說道  用戶  -->  后臺服務器邏輯  -->數據庫

那么這樣的模式  如果用在秒殺上,  同時間 高并發來臨,后臺服務器邏輯操作數據庫  一定是數據庫 扛不住的時候,他已經就高潮了信不?

所以我們  如何讓服務器不癱瘓的實現秒殺咧?

就要使用我們 的一種快、高效  避免數據庫受到  高并發的請求處理;

實現思路:

1、在做一個  商品 開啟秒殺活動前,將數據庫中該商品的庫存  同步到我們的內容緩沖中例如  redis 、memcache 中;

2、然后  同時在redis、memcache內容緩沖中  構建我們的消息隊列A(其實也就是一塊命名了的  資源空間) 用來存放 客戶端的請求;

3、構建 處理 2 中的隊列數據 將處理的結果 放入另一個 隊列B中(例如 通過腳本 while()  sleep  實現隊列A處理后  結果再放入隊列B);

4、客戶端點擊秒殺后,js等客戶端  啟動隔時 請求,去隊列B中找自己是不是被處理  以及處理的結果到底是個毛線 拿回來;

5、定時將 緩沖 中的商品庫存等信息  再同步回數據庫中

OK  幾句話是否點通了你?

實現腳本圖:

0.php   將數據庫商品庫存同步 緩沖中一份;

1.php   處理消息隊列A 的入隊(用戶的請求);

2.php   while sleep腳本啟動,出隊A中的請求逐個處理  并將結果存入隊列B;

3.php   處理客戶端  定時請求讀取結果  隊列B中檢索;

4.html   定時請求3.php;

5.php    定時將緩沖商品信息同步回數據庫中

OK

以上,自己實現過一個例子,僅供參考


發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 玛纳斯县| 赣榆县| 洪泽县| 石狮市| 庄浪县| 雷波县| 固始县| 民乐县| 莱州市| 漯河市| 新安县| 高碑店市| 白城市| 镇赉县| 双江| 百色市| 英德市| 扎囊县| 桐城市| 潞西市| 吴川市| 蒙山县| 马公市| 盐源县| 富源县| 和平县| 达尔| 乌恰县| 黄浦区| 扎赉特旗| 漳平市| 商河县| 上杭县| 沾益县| 临安市| 特克斯县| 都兰县| 临颍县| 封丘县| 宁陵县| 邻水|