大家怎么解决推送后大量用户涌入的问题 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
BeanYoung
V2EX    Python

大家怎么解决推送后大量用户涌入的问题

  •  
  •   BeanYoung 2014-03-26 22:53:52 +08:00 4530 次点击
    这是一个创建于 4276 天前的主题,其中的信息可能已经有所发展或是发生改变。
    现在应用大概有150w用户,日活10w+,两台服务器,一台api,一台数据库。最近几次全员推送,每次都api超时,处于无法全员推送的状态。

    我们使用到的技术关键字包括python, thirft, MySQL, peewee, redis, flask

    我先说说我的想法。分库分表,缓存,无提示声音推送。

    大家都怎么处理这种app全用户推送问题的?有啥思路和建议?
    12 条回复    1970-01-01 08:00:00 +08:00
    mailunion
        1
    mailunion  
       2014-03-26 23:28:54 +08:00
    分时段
    ovear
        2
    ovear  
       2014-03-26 23:39:04 +08:00
    queue
    BeanYoung
        3
    BeanYoung  
    OP
       2014-03-26 23:41:01 +08:00
    @ovear 这个队列怎么用?
    BeanYoung
        4
    BeanYoung  
    OP
       2014-3-26 23:41:29 +08:00
    @mailunion 分时段是个不错的方法。但对时效性较高的推送不太合适
    9hills
        5
    9hills  
       2014-03-26 23:45:40 +08:00 via iPad
    按照最大流量重新计算资源,该买机器的买机器
    huijiewei
        6
    huijiewei  
       2014-03-27 00:08:02 +08:00
    分时间推送啊。

    固定时间点开始推送最大可负载的用户量,比如10W。监控这10W用户的访问,然后再根据监控1W,1W的再进行分段推送即可
    ericFork
        7
    ericFork  
       2014-03-27 00:18:35 +08:00
    如果使用的是弹性云主机,可以根据历史监控数据推断即将到来的峰值,在给出一定冗余的基础上暂时升级配置,然后根据实时监控数据降低配置
    yinxingren
        8
    yinxingren  
       2014-03-27 00:21:02 +08:00
    最经济的办法就是分时段推送了吧
    Ricepig
        9
    Ricepig  
       2014-03-27 00:43:15 +08:00
    redis模拟一个Queue,推动时把消息enqueue,另外起一个service,有节奏地dequeue并通知.

    短信群发都这么做,哈哈
    huafang
        10
    huafang  
       2014-03-27 00:50:39 +08:00
    腾讯已经推出一个推送服务了
    openroc
        11
    openroc  
       2014-03-27 10:55:46 +08:00   1
    如果必须要并发访问,就利用EC2这样的,提前launch多个instance。数据也可以用instance作cache。峰值过去后,在关闭,也很节省。(24个instanche,1小时,相当于,1个instance一天)
    GreenHand
        12
    GreenHand  
       2014-03-27 16:29:30 +08:00
    如果只是推送后服务器无法承载访问压力,建议部署在云主机上。
    如果买主机,可能导致平时资源浪费。

    或者,没必要集中推送嘛,如果实时性要求不高的话。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1001 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 18:51 PVG 02:51 LAX 10:51 JFK 13:51
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86