代码之家  ›  专栏  ›  技术社区  ›  z3cko

托管高流量Facebook应用程序(游戏)

  •  4
  • z3cko  · 技术社区  · 16 年前

    我们目前正在开发一个高流量的Facebook应用程序。所有流量将在一个月内完成,预计有50万至1000万用户。 在那个月之后,游戏结束了,我们有了一个胜利者——所以应用程序将被存档。

    我们目前正计划用RubyonRails开发这个应用程序,并寻找可以处理流量的托管选项。问题不在于用户多,而在于峰值:我们将在短时间内每天收到大约500.000个请求(比如在最坏的情况下,在3分钟内)。

    我们预计应用程序的用户将达到50万到1000万,高峰时间为下午1:00(时区GMT+1),大多数(高达80%的用户)将发送大部分请求。请求时间为6月11日至7月11日-之后,应用程序/游戏关闭/结束。

    我们目前正在开发一种积极的缓存机制-目前我们正在考虑2或3个小的应用程序/Web服务来处理负载。

    荷载分布如下: a)主应用程序、缓存数据(11个屏幕,每个屏幕20万) b)投票:每天直到下午1:00(时区GMT+1)-每个用户投票,发送大约10万个数据,高并发峰值!

    问题:

    • 是否有推荐的特定应用程序设置?
    • 是否有可以推荐的托管合作伙伴?

    谢谢!

    2 回复  |  直到 16 年前
        1
  •  2
  •   Schneems    16 年前

    查看一些自动缩放的云计算解决方案,例如EC2的自动缩放 http://aws.amazon.com/autoscaling/ 您将参数设置为EC2何时为您启动新实例。

    如果你真的想小心的话,你可以建立一个僵尸网络来模拟到你的站点的流量。 http://www.talcottsystems.com/articles/build-your-own-botnet-with-ec2-and-capistrano-to-load-test-your-server-cluster-before-launch/

        2
  •  3
  •   nasmorn    16 年前

    好吧,如果您提供的内容都是缓存的,那么您可以很好地使用这些内容,一些nginx实例可以提供几乎无限的静态页面。

    投票听起来不太好,因为它应该同时进行。 对于高并发负载来说,新的热点似乎是node.js,但我对此没有任何经验。

    我确实认为,虽然投票实际上不会起到很大的作用,但与其进行完整的Rails堆栈调用,不如尝试编写一个完成投票的小框架方法。这样可以避免加载ActionController、ActionView,如果您将投票以纯SQL格式写入数据库,也可以使用ActiveRecord。

    推荐文章