亚洲综合原千岁中文字幕_国产精品99久久久久久久vr_无码人妻aⅴ一区二区三区浪潮_成人h动漫精品一区二区三

主頁 > 知識庫 > 淺談我是如何用redis做實時訂閱推送的

淺談我是如何用redis做實時訂閱推送的

熱門標(biāo)簽:山東外呼銷售系統(tǒng)招商 超呼電話機器人 北京400電話辦理收費標(biāo)準(zhǔn) 貴州電銷卡外呼系統(tǒng) 十堰營銷電銷機器人哪家便宜 鄭州人工智能電銷機器人系統(tǒng) 宿遷便宜外呼系統(tǒng)平臺 魔獸2青云地圖標(biāo)注 日本中國地圖標(biāo)注

前陣子開發(fā)了公司領(lǐng)劵中心的項目,這個項目是以redis作為關(guān)鍵技術(shù)落地的。

先說一下領(lǐng)劵中心的項目吧,這個項目就類似京東app的領(lǐng)劵中心,當(dāng)然圖是截取京東的,公司的就不截了。。。

其中有一個功能叫做領(lǐng)劵的訂閱推送。什么是領(lǐng)劵的訂閱推送?就是用戶訂閱了該劵的推送,在可領(lǐng)取前的一分鐘就要把提醒信息推送到用戶的app中。本來這個訂閱功能應(yīng)該是消息中心那邊做的,但他們說這個短時間內(nèi)做不了。所以讓我這個負(fù)責(zé)優(yōu)惠劵的做了-.-!。具體方案就是到具體的推送時間點了,coupon系統(tǒng)調(diào)用消息中心的推送接口,把信息推送出去。

下們我們分析一下這個功能的業(yè)務(wù)情景。公司目前注冊用戶6000W+,是哪家就不要打聽了。。。比如有一張無門檻的優(yōu)惠劵下單立減20元,那么搶這張劵的人就會比較多,我們保守估計10W+,百萬級別不好說。我們初定為20W萬人,那么這20W條推送信息要在一分鐘推送完成!并且一個用戶是可以訂閱多張劵的。所以我們知道了這個訂閱功能的有兩個突出的難點:

1、推送的實效性:推送慢了,用戶會抱怨沒有及時通知他們錯過了開搶時機。

2、推送的體量大:爆款的神劵,人人都想搶!

然而推送體量又會影響到推送的實效性。這真是一個讓人頭疼的問題!

那就讓我們把問題一個個解決掉吧!

推送的實效性的問題:當(dāng)用戶在領(lǐng)劵中心訂閱了某個劵的領(lǐng)取提醒后,在后臺就會生成一條用戶的訂閱提醒記錄,里面記錄了在哪個時間點給用戶發(fā)送推送信息。所以問題就變成了系統(tǒng)如何快速實時選出哪些要推送的記錄!

方案1:MQ的延遲投遞。

MQ雖然支持消息的延遲投遞但尺度太大1s 5s 10s 30s 1m,用來做精確時間點投遞不行!并且用戶執(zhí)行訂閱之后又取消訂閱的話,要把發(fā)出去的MQ消息delete掉這個操作有點頭大,短時間內(nèi)難以落地!并且用戶可以取消之后再訂閱,這又涉及到去重的問題。所以MQ的方案否掉。

方案2:傳統(tǒng)定時任務(wù)。

這個相對來說就簡單一點,用定時任務(wù)是去db里面load用戶的訂閱提醒記錄,從中選出當(dāng)前可以推送的記錄。但有句話說得好任何脫離實際業(yè)務(wù)的設(shè)計都是耍流氓~。下面我們就分析一下傳統(tǒng)的定時任務(wù)到底適不適合我們的這個業(yè)務(wù)!

能否支持多機同時跑 一般不能,同一時刻只能單機跑。
存儲數(shù)據(jù)源 一般是mysql或者其它傳統(tǒng)數(shù)據(jù)庫,并且是單表存儲
頻率 支持秒、分、時、天,一般不能太快

總上所述我們就知道了一般傳統(tǒng)的定時任務(wù)存在以下缺點:

1、性能瓶頸。只有一臺機在處理,在大體量數(shù)據(jù)面前力不從心!

2、實效性差。定時任務(wù)的頻率不能太高,太高會業(yè)務(wù)數(shù)據(jù)庫造成很大的壓力!

3、單點故障。萬一跑的那臺機掛了,那整個業(yè)務(wù)不可用了-。- 這是一個很可怕的事情!

所以傳統(tǒng)定時任務(wù)也不太適合這個業(yè)務(wù)。。。

那我們是不是就束手無策了呢?其實不是的! 我們只要對傳統(tǒng)的定時任務(wù)做一個簡單的改造!就可以把它變成可以同時多機跑,并且實效性可以精確到秒級,并且拒絕單點故障的定時任務(wù)集群!這其中就要借助我們的強大的redis了。

方案3:定時任務(wù)集群

首先我們要定義定時任務(wù)集群要解決的三個問題!

1、實效性要高

2、吞吐量要大

3、服務(wù)要穩(wěn)定,不能有單點故障

下面是整個定時任務(wù)集群的架構(gòu)圖。

架構(gòu)很簡單:我們把用戶的訂閱推送記錄存儲到redis集群的sortedSet隊列里面,并且以提醒用戶提醒時間戳作為score值,然后在我們個每業(yè)務(wù)server里面起一個定時器頻率是秒級,我的設(shè)定就是1s,然后經(jīng)過負(fù)載均衡之后從某個隊列里面獲取要推送的用戶記錄進行推送。下面我們分析以下這個架構(gòu)

1、性能:除去帶寬等其它因素,基本與機器數(shù)成線性相關(guān)。機器數(shù)量越多吞吐量越大,機器數(shù)量少時相對的吞吐量就減少。

2、實效性:提高到了秒級,效果還可以接受。

3、單點故障?不存在的!除非redis集群或者所有server全掛了。。。。

這里解析一下為什么用redis?

第一redis 可以作為一個高性能的存儲db,性能要比MySQL好很多,并且支持持久化,穩(wěn)定性好。

第二redisSortedSet隊列天然支持以時間作為條件排序,完美滿足我們選出要推送的記錄。

ok~既然方案已經(jīng)有了那如何在一天時間內(nèi)把這個方案落地呢?是的我設(shè)計出這個方案到基本編碼完成,時間就是一天。。。 因為時間太趕鳥。

首先我們以user_id作為key,然后mod隊列數(shù)hash到redis SortedSet隊列里面。為什么要這樣呢,因為如果用戶同時訂閱了兩張劵并且推送時間很近,這樣的兩條推送就可以合并成一條~,并且這樣hash也相對均勻。下面是部分代碼的截圖:

然后要決定隊列的數(shù)量,一般正常來說我們有多少臺處理的服務(wù)器就定義多少條隊列。因為隊列太少,會造成隊列競爭,太多可能會導(dǎo)致記錄得不到及時處理。

然而最佳實踐是隊列數(shù)量應(yīng)該是可動態(tài)配置化的,因為線上的集群機器數(shù)是會經(jīng)常變的。大促的時候我們會加機器是不是,并且業(yè)務(wù)量增長了,機器數(shù)也是會增加是不是~。所以我是借用了淘寶的diamond進行隊列數(shù)的動態(tài)配置。

我們每次從隊列里面取多少條記錄也是可以動態(tài)配置的

這樣就可以隨時根據(jù)實際的生產(chǎn)情況調(diào)整整個集群的吞吐量~。 所以我們的定時任務(wù)集群還是具有一個特性就是支持動態(tài)調(diào)整~。

最后一個關(guān)鍵組件就是負(fù)載均衡了。這個是非常重要的!因為這個做得不好就會可能導(dǎo)致多臺機競爭同時處理一個隊列,影響整個集群的效率!在時間很緊的情況下我就用了一個簡單實用的利用redis一個自增key 然后 mod 隊列數(shù)量算法。這樣就很大程度上就保證不會有兩臺機器同時去競爭一條隊列~.

最后我們算一下整個集群的吞吐量

10(機器數(shù)) * 2000(一次拉取數(shù)) = 20000。然后以MQ的形式把消息推送到消息中心,發(fā)MQ是異步的,算上其它處理0.5s。

其實發(fā)送20W的推送也就是10幾s的事情。

ok~ 到這里我們整個定時任務(wù)集群就差不多基本落地好了。如果你問我后面還有什么可以完善的話那就是:

1、加監(jiān)控, 集群怎么可以木有監(jiān)控呢,萬一出問題有任務(wù)堆積怎么辦~

2、加上可視化界面。

3、最好有智能調(diào)度,增加任務(wù)優(yōu)先級。優(yōu)先級高的任務(wù)先運行嘛。

4、資源調(diào)度,萬一機器數(shù)量不夠,力不從心,優(yōu)先保證重要任務(wù)執(zhí)行。

目前項目已上前線,運行平穩(wěn)~。

到此這篇關(guān)于淺談我是如何用redis做實時訂閱推送的的文章就介紹到這了,更多相關(guān)redis 實時訂閱推送內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • redis發(fā)布訂閱Java代碼實現(xiàn)過程解析
  • redis發(fā)布訂閱_動力節(jié)點Java學(xué)院整理
  • redis發(fā)布和訂閱_動力節(jié)點Java學(xué)院整理
  • Redis 訂閱發(fā)布_Jedis實現(xiàn)方法
  • Redis發(fā)布訂閱和實現(xiàn).NET客戶端詳解

標(biāo)簽:北京 吉安 臺州 朝陽 大慶 楊凌 果洛 江蘇

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《淺談我是如何用redis做實時訂閱推送的》,本文關(guān)鍵詞  淺談,我是,如,何用,redis,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《淺談我是如何用redis做實時訂閱推送的》相關(guān)的同類信息!
  • 本頁收集關(guān)于淺談我是如何用redis做實時訂閱推送的的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲精品中文一区不卡| 欧美激情伊人| 久久99爰这里有精品国产| 九九久久99综合一区二区| 久久久成人影院| 亚洲第一页乱| 欧美大片aaaa一级毛片| a级精品九九九大片免费看| 黄色福利片| 日本特黄特黄aaaaa大片| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 成人a级高清视频在线观看| 一级片片| 尤物视频网站在线| 色综合久久天天综合绕观看| 九九干| 999久久狠狠免费精品| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 国产美女在线一区二区三区| 可以免费看毛片的网站| 香蕉视频久久| 国产麻豆精品hdvideoss| 四虎影视久久久免费| 国产成人精品综合在线| 国产一区二区精品久| 久久国产影视免费精品| 欧美夜夜骑 青草视频在线观看完整版 久久精品99无色码中文字幕 欧美日韩一区二区在线观看视频 欧美中文字幕在线视频 www.99精品 香蕉视频久久 | 日日夜人人澡人人澡人人看免| 国产一区国产二区国产三区| 日本特黄特色aa大片免费| 日韩一级黄色片| 国产一级生活片| 国产国语对白一级毛片| 99久久精品国产麻豆| 99热精品在线| 成人高清视频在线观看| 毛片成人永久免费视频| 国产成人精品影视| 国产视频久久久久| 欧美另类videosbestsex视频| 欧美爱爱动态| 亚洲女人国产香蕉久久精品| 亚洲精品影院久久久久久| 欧美激情一区二区三区在线播放| 日韩免费片| 91麻豆精品国产高清在线| 一级毛片看真人在线视频| 久久国产精品自由自在| 国产视频久久久| 国产一区二区精品久久91| 日本免费乱理伦片在线观看2018| 韩国妈妈的朋友在线播放| 精品视频在线观看一区二区| 日日日夜夜操| 国产福利免费观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 欧美1卡一卡二卡三新区| 成人a大片在线观看| 亚洲天堂免费| 国产不卡福利| 国产美女在线一区二区三区| 国产亚洲精品成人a在线| 日日日夜夜操| 国产成人精品影视| 黄视频网站免费| 九九干| 久久99爰这里有精品国产| 亚洲精品中文字幕久久久久久| 免费毛片播放| 亚洲精品影院| 免费一级生活片| 欧美大片aaaa一级毛片| 97视频免费在线| 国产麻豆精品免费密入口| 精品国产一区二区三区精东影业| 午夜在线亚洲| 国产一区精品| 精品久久久久久免费影院| 色综合久久手机在线| 欧美1区| 国产视频一区二区在线观看| 久久成人亚洲| 国产亚洲精品aaa大片| 天天做人人爱夜夜爽2020毛片| 欧美国产日韩在线| 成人影院一区二区三区| 国产国产人免费视频成69堂| 精品国产亚洲人成在线| 欧美18性精品| 天天做日日爱夜夜爽| 亚洲天堂一区二区三区四区| 国产伦久视频免费观看视频| 国产原创视频在线| 麻豆系列 在线视频| 黄色免费三级| 亚洲第一页乱| 精品视频免费观看| 国产成人女人在线视频观看| 九九久久99| 国产麻豆精品高清在线播放| 一级女性全黄久久生活片| 日本伦理黄色大片在线观看网站| 91麻豆高清国产在线播放| 四虎影视久久久| 精品国产香蕉在线播出| 日日日夜夜操| 久久精品店| 成人影视在线播放| 精品视频免费在线| 91麻豆精品国产片在线观看| 精品视频在线看| 久久99青青久久99久久| 欧美18性精品| 一级毛片视频在线观看| 黄色免费三级| 亚洲精品影院| 天天色色色| 成人免费观看视频| 香蕉视频三级| 国产一区二区精品尤物| 免费一级片网站| 亚洲 国产精品 日韩| 欧美激情中文字幕一区二区| 高清一级做a爱过程不卡视频| 国产一区二区精品久| 天天做人人爱夜夜爽2020毛片| 国产视频久久久久| 毛片高清| 香蕉视频一级| 国产伦久视频免费观看 视频| 精品久久久久久免费影院| 国产高清视频免费观看| 免费一级片网站| 色综合久久天天综合绕观看| 国产激情一区二区三区| 欧美另类videosbestsex| 午夜久久网| 国产成人啪精品视频免费软件| 国产美女在线观看| 色综合久久天天综合绕观看| 日韩中文字幕一区二区不卡| a级精品九九九大片免费看| 日本在线不卡免费视频一区| 99久久精品国产片| 国产成人精品在线| 999久久66久6只有精品| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 美女免费毛片| 精品视频在线观看视频免费视频| 九九干| 99久久网站| 精品久久久久久综合网 | 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 精品久久久久久中文| 久久99青青久久99久久| 精品久久久久久中文字幕2017| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 亚洲精品影院| 麻豆网站在线免费观看| 黄色免费三级| 欧美国产日韩一区二区三区| 精品视频免费看| 精品国产亚一区二区三区| 精品国产一区二区三区久| 韩国妈妈的朋友在线播放| 欧美国产日韩一区二区三区| 久久久成人影院| 国产福利免费观看| 九九久久99| 中文字幕Aⅴ资源网| 欧美激情一区二区三区在线播放| 青青青草视频在线观看| 黄色免费网站在线| 天天做日日干| 香蕉视频久久| 韩国毛片 免费| 国产伦精品一区三区视频| 中文字幕97| 午夜激情视频在线观看| 日本久久久久久久 97久久精品一区二区三区 狠狠色噜噜狠狠狠狠97 日日干综合 五月天婷婷在线观看高清 九色福利视频 | 天天做日日爱夜夜爽| 91麻豆国产福利精品| 成人影视在线播放| 日韩在线观看免费完整版视频| 久久国产精品只做精品| 免费国产在线观看| 久久精品免视看国产成人2021| 精品在线观看国产| 美女免费毛片| 午夜欧美福利| 精品视频免费观看| 好男人天堂网 久久精品国产这里是免费 国产精品成人一区二区 男人天堂网2021 男人的天堂在线观看 丁香六月综合激情 | 亚洲天堂在线播放| 麻豆午夜视频| 99热精品在线| 黄视频网站免费观看| 欧美大片a一级毛片视频| a级毛片免费全部播放| 麻豆系列 在线视频| 日韩一级黄色|