如何运行我的Rails应用程序的多个实例?

时间:2010-01-17 21:21:34

标签: ruby-on-rails

你知道,对于负载平衡等吗?我有一个VPS,并了解您可以部署和运行多个实例,并让它们与数据库会话存储和memcached等共享数据。我无法找到的是关于如何做到这一点的任何信息?

我对单个VPS以及多个VPS中的多个实例(两个或三个)感到好奇。

TIA,

NJ

3 个答案:

答案 0 :(得分:5)

这实际上取决于您正在使用的架构。如果您正在使用mongrel,请查看mongrel_cluster。如果您使用fastcgi或乘客,这已经为您完成了。另一种方法是查看Heroku,它允许您只更改一个滑块以获得更多实例。现在有45k项目在Heroku上托管,所以如果你认真对待它,我认为你应该自己去查看它。

答案 1 :(得分:2)

一本好书是Deploying Rails Applications。它有点过时,但为您提供了rails的管理端的全部范围和基础。它使用mongrel集群,它将实现你想要的。

正如Chuck上面提到的,乘客是一个很好的选择,我认为它比Mongrel更受欢迎。但是这本书将为你提供良好的工作基础。电子书只有22美元,但我自己买了纸质版。

答案 2 :(得分:0)

云计算很有意思。 Amazon AWS允许您启动磁盘映像的多个实例,允许您创建工作池。您可以使用API​​调用启动和关闭计算机,只有在使用它们时才需要付费。

让这些机器一起工作更加困难。有分布式ruby项目,但它们缺乏重要的功能。 Quartz是我用于分布式计算的一个很棒的项目。它是一个非常强大的库,可以简化单个系统或大型集群上的任务协调。两者之间的差异归结为单configuration file。然而它是用Java编写的。 Java是项目的一个很好的选择,因为它有比ruby更好的内存管理器。你有没有尝试过长时间运行ruby脚本?几天后,它的内存使用率往往会失控。

简而言之,使用执行ruby代码的Quartz在Java中编写简单的作业。