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

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

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

2019-11-11 05:37:45
字體:
供稿:網(wǎng)友

大家應(yīng)該都知道,秒殺為啥  用  異步隊(duì)列 這種形式來處理吧?哈哈 因?yàn)槲覀儗懙某绦蚬δ苤俺@矶际? 用戶請(qǐng)求到后臺(tái),后臺(tái)操作數(shù)據(jù)庫進(jìn)行實(shí)現(xiàn)相應(yīng)功能。

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

OK

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


發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 望谟县| 清苑县| 合水县| 贵定县| 碌曲县| 晴隆县| 黑河市| 瓦房店市| 丽水市| 山阳县| 盐山县| 滦南县| 和平区| 涟源市| 肥城市| 佛山市| 滕州市| 建宁县| 天津市| 长汀县| 泌阳县| 永昌县| 泰和县| 桃源县| 大同县| 郯城县| 兴化市| 芦山县| 华亭县| 青铜峡市| 伽师县| 白朗县| 和田市| 闽清县| 唐山市| 诏安县| 侯马市| 东光县| 土默特左旗| 双峰县| 沾化县|