node.js - 大用戶量怎么做同時推送
問題描述
比如現(xiàn)在有10w用戶,我想請問下如何對這10w人同時進(jìn)行推送呢
數(shù)據(jù)庫采用mysql或者mongodb
如果是一臺服務(wù)器的話,我的做法是把用戶分批,比如一批1000人,需要100批,同時操作,然后把查詢出來的用戶做推送
如果是多臺服務(wù)器的話,需要怎么操作呢?
想一些第三方的推送工具(比如百度推送、小米推送)他們提供推送到全部設(shè)備,這里應(yīng)該就會有上面的問題吧,他們的推送服務(wù)器應(yīng)該不會是一臺,他們是怎么做的處理呢
問題解答
回答1:一臺就慢慢循環(huán)發(fā)多臺就做任務(wù)分發(fā)比如10w個用戶需要推送有5臺服務(wù)器可以同時工作建立一個中間件(比如mq,redis等)做任務(wù)分發(fā),每1000個用戶為一個任務(wù),把10w用戶分成100個任務(wù)然后5臺服務(wù)器去取任務(wù)每次取一個,處理結(jié)束在取一個,平均一臺服務(wù)器處理20個任務(wù)。
分發(fā)的任務(wù)可以直接為mysql或者mongodb的查詢語句例如 mongodb.user.find().limit(1000).skip(0),mongodb.user.find().limit(1000).skip(1000),mongodb.user.find().limit(1000).skip(2000)...
回答2:查詢比率的數(shù)據(jù)推...
回答3:我們是用的極光推送的服務(wù)
相關(guān)文章:
1. mysql 為什么主鍵 id 和 pid 都市索引, id > 10 走索引 time > 10 不走索引?2. css3 - 純css實(shí)現(xiàn)點(diǎn)擊特效3. javascript - Img.complete和img.onload判斷圖片加載完成有什么區(qū)別?4. java中返回一個對象,和輸出對像的值,意義在哪兒5. mysql - 在不允許改動數(shù)據(jù)表的情況下,如何優(yōu)化以varchar格式存儲的時間的比較?6. docker網(wǎng)絡(luò)端口映射,沒有方便點(diǎn)的操作方法么?7. javascript - 有適合開發(fā)手機(jī)端Html5網(wǎng)頁小游戲的前端框架嗎?8. 推薦好用mysql管理工具?for mac和pc9. css - 網(wǎng)頁div區(qū)塊 像蘋果一樣可左右滑動 手機(jī)與電腦10. javascript - 關(guān)于apply()與call()的問題
