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

首頁(yè) > 學(xué)院 > 開(kāi)發(fā)設(shè)計(jì) > 正文

老火 給大家說(shuō)兩句自己簡(jiǎn)單實(shí)現(xiàn)秒殺思路

2019-11-11 06:30:55
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友

大家應(yīng)該都知道,秒殺為啥  用  異步隊(duì)列 這種形式來(lái)處理吧?哈哈 因?yàn)槲覀儗?xiě)的程序功能之前常理都是  用戶(hù)請(qǐng)求到后臺(tái),后臺(tái)操作數(shù)據(jù)庫(kù)進(jìn)行實(shí)現(xiàn)相應(yīng)功能。

上邊說(shuō)道  用戶(hù)  -->  后臺(tái)服務(wù)器邏輯  -->數(shù)據(jù)庫(kù)

那么這樣的模式  如果用在秒殺上,  同時(shí)間 高并發(fā)來(lái)臨,后臺(tái)服務(wù)器邏輯操作數(shù)據(jù)庫(kù)  一定是數(shù)據(jù)庫(kù) 扛不住的時(shí)候,他已經(jīng)就高潮了信不?

所以我們  如何讓服務(wù)器不癱瘓的實(shí)現(xiàn)秒殺咧?

就要使用我們 的一種快、高效  避免數(shù)據(jù)庫(kù)受到  高并發(fā)的請(qǐng)求處理;

實(shí)現(xiàn)思路:

1、在做一個(gè)  商品 開(kāi)啟秒殺活動(dòng)前,將數(shù)據(jù)庫(kù)中該商品的庫(kù)存  同步到我們的內(nèi)容緩沖中例如  redis 、memcache 中;

2、然后  同時(shí)在redis、memcache內(nèi)容緩沖中  構(gòu)建我們的消息隊(duì)列A(其實(shí)也就是一塊命名了的  資源空間) 用來(lái)存放 客戶(hù)端的請(qǐng)求;

3、構(gòu)建 處理 2 中的隊(duì)列數(shù)據(jù) 將處理的結(jié)果 放入另一個(gè) 隊(duì)列B中(例如 通過(guò)腳本 while()  sleep  實(shí)現(xiàn)隊(duì)列A處理后  結(jié)果再放入隊(duì)列B);

4、客戶(hù)端點(diǎn)擊秒殺后,js等客戶(hù)端  啟動(dòng)隔時(shí) 請(qǐng)求,去隊(duì)列B中找自己是不是被處理  以及處理的結(jié)果到底是個(gè)毛線 拿回來(lái);

5、定時(shí)將 緩沖 中的商品庫(kù)存等信息  再同步回?cái)?shù)據(jù)庫(kù)中

OK  幾句話是否點(diǎn)通了你?

實(shí)現(xiàn)腳本圖:

0.php   將數(shù)據(jù)庫(kù)商品庫(kù)存同步 緩沖中一份;

1.php   處理消息隊(duì)列A 的入隊(duì)(用戶(hù)的請(qǐng)求);

2.php   while sleep腳本啟動(dòng),出隊(duì)A中的請(qǐng)求逐個(gè)處理  并將結(jié)果存入隊(duì)列B;

3.php   處理客戶(hù)端  定時(shí)請(qǐng)求讀取結(jié)果  隊(duì)列B中檢索;

4.html   定時(shí)請(qǐng)求3.php;

5.php    定時(shí)將緩沖商品信息同步回?cái)?shù)據(jù)庫(kù)中

OK

以上,自己實(shí)現(xiàn)過(guò)一個(gè)例子,僅供參考


發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 敖汉旗| 青浦区| 灵川县| 定兴县| 元氏县| 盐山县| 宁津县| 永泰县| 土默特右旗| 德格县| 南投市| 商南县| 密山市| 佛山市| 镇康县| 湟中县| 卢龙县| 万州区| 高阳县| 光山县| 泰来县| 微博| 兴安县| 汤原县| 元谋县| 郯城县| 游戏| 武城县| 枣庄市| 屏东县| 吉木乃县| 信丰县| 定陶县| 巴塘县| 阳江市| 宁乡县| 天津市| 紫金县| 富平县| 和林格尔县| 徐闻县|