【问题标题】:Scalability of multi-site rails app多站点 Rails 应用程序的可扩展性
【发布时间】:2011-12-26 14:50:30
【问题描述】:

我正在着手一个新的 Rails 项目,该项目的前提是允许用户创建自己的“站点”。每个“站点”都是根域的子域(我们将使用 example.com)。因此,如果用户 Foo 想在 bar.example.com 创建自己的站点,则对 bar.example.com 页面的每个页面请求都需要根据子域获取站点表中的一行。

我的问题不是如何编写多站点应用程序,我想我对此有很好的把握。我的问题是,从可扩展性和性能的角度来看,为用户创建的每个站点简单地生成一个新的 rails 项目会更好吗?或者是否可以从一个 Rails 应用程序中运行所有站点。如果需要数字,假设我有 100 万用户,每个用户最多有 5 个网站,每个网站每天带来大约 1000 次点击。

我意识到这是一个广泛的问题,并且主要取决于我对这两种方法的实现以达到可行的解决方案,但是任何关于编写此方法的最佳方法的建议,包括优化数据库等都将是赞赏。

【问题讨论】:

    标签: ruby-on-rails ruby performance scalability


    【解决方案1】:

    我不会考虑对多个 Rails 项目做这样的事情,因为需要维护所有代码。通过保持中心化,您可以一次更改每个网站的功能。

    我认为您也可能会因为实例化所有这些 Rails 副本而遇到内存问题。

    【讨论】:

      【解决方案2】:

      与数百万个 Rails 应用相比,拥有 1 个具有数百万个子域的 Rails 应用要容易得多。

      查看此 railscast,了解如何从子域开始:http://railscasts.com/episodes/221-subdomains-in-rails-3

      【讨论】:

        【解决方案3】:

        @Solomon 是对的。 Heroku.com 对其用户使用相同的概念来演示用户的应用程序。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-05-29
          • 1970-01-01
          • 2015-05-25
          • 2011-03-28
          • 1970-01-01
          • 2010-11-30
          • 2014-09-13
          • 2011-03-25
          相关资源
          最近更新 更多