This topic created in 4429 days ago, the information mentioned may be changed or developed.
现在应用大概有150w用户,日活10w+,两台服务器,一台api,一台数据库。最近几次全员推送,每次都api超时,处于无法全员推送的状态。
我们使用到的技术关键字包括python, thirft, MySQL, peewee, redis, flask
我先说说我的想法。分库分表,缓存,无提示声音推送。
大家都怎么处理这种app全用户推送问题的?有啥思路和建议?
12 replies 1970-01-01 08:00:00 +08:00  | | 2 ovear Mar 26, 2014 queue |
 | | 5 9hills Mar 26, 2014 via iPad 按照最大流量重新计算资源,该买机器的买机器 |
 | | 6 huijiewei Mar 27, 2014 分时间推送啊。
固定时间点开始推送最大可负载的用户量,比如10W。监控这10W用户的访问,然后再根据监控1W,1W的再进行分段推送即可 |
 | | 7 ericFork Mar 27, 2014 如果使用的是弹性云主机,可以根据历史监控数据推断即将到来的峰值,在给出一定冗余的基础上暂时升级配置,然后根据实时监控数据降低配置 |
 | | 9 Ricepig Mar 27, 2014 redis模拟一个Queue,推动时把消息enqueue,另外起一个service,有节奏地dequeue并通知.
短信群发都这么做,哈哈 |
 | | 10 huafang Mar 27, 2014 腾讯已经推出一个推送服务了 |
 | | 11 openroc Mar 27, 2014 1 如果必须要并发访问,就利用EC2这样的,提前launch多个instance。数据也可以用instance作cache。峰值过去后,在关闭,也很节省。(24个instanche,1小时,相当于,1个instance一天) |
 | | 12 GreenHand Mar 27, 2014 如果只是推送后服务器无法承载访问压力,建议部署在云主机上。 如果买主机,可能导致平时资源浪费。
或者,没必要集中推送嘛,如果实时性要求不高的话。 |