node.js - 大用戶量怎么做同時(shí)推送
問題描述
比如現(xiàn)在有10w用戶,我想請問下如何對這10w人同時(shí)進(jìn)行推送呢
數(shù)據(jù)庫采用mysql或者mongodb
如果是一臺服務(wù)器的話,我的做法是把用戶分批,比如一批1000人,需要100批,同時(shí)操作,然后把查詢出來的用戶做推送
如果是多臺服務(wù)器的話,需要怎么操作呢?
想一些第三方的推送工具(比如百度推送、小米推送)他們提供推送到全部設(shè)備,這里應(yīng)該就會(huì)有上面的問題吧,他們的推送服務(wù)器應(yīng)該不會(huì)是一臺,他們是怎么做的處理呢
問題解答
回答1:一臺就慢慢循環(huán)發(fā)多臺就做任務(wù)分發(fā)比如10w個(gè)用戶需要推送有5臺服務(wù)器可以同時(shí)工作建立一個(gè)中間件(比如mq,redis等)做任務(wù)分發(fā),每1000個(gè)用戶為一個(gè)任務(wù),把10w用戶分成100個(gè)任務(wù)然后5臺服務(wù)器去取任務(wù)每次取一個(gè),處理結(jié)束在取一個(gè),平均一臺服務(wù)器處理20個(gè)任務(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 查詢身份證號字段值有效的數(shù)據(jù)2. 請教使用PDO連接MSSQL數(shù)據(jù)庫插入是亂碼問題?3. 視頻文件不能播放,怎么辦?4. flask - python web中如何共享登錄狀態(tài)?5. python如何不改動(dòng)文件的情況下修改文件的 修改日期6. python - 數(shù)據(jù)與循環(huán)次數(shù)對應(yīng)不上7. node.js - nodejs開發(fā)中常用的連接mysql的庫8. python - 我在使用pip install -r requirements.txt下載時(shí),為什么部分能下載,部分不能下載9. mysql - 把一個(gè)表中的數(shù)據(jù)count更新到另一個(gè)表里?10. mysql - 分庫分表、分區(qū)、讀寫分離 這些都是用在什么場景下 ,會(huì)帶來哪些效率或者其他方面的好處
