我想知道是否有人可以解释如何平衡rails应用程序。
两个问题:
它是否有助于让相同的专用服务器中的同一数据库中的单独的rails应用程序读取?
我了解Apache可以平衡负载安装一些额外的模块吗?我对吗?我们怎么能做到这一点? (请提供假人的解释)
答案 0 :(得分:1)
我会看一下使用Passenger - 它已经在很大程度上取代了Mongrel并处理了多个Rails实例的运行。
Rails是单线程的,因此在使用Mongrel进行部署时,在安装了mod_proxy的Apache前端的集群中运行多个Mongrel实例是“正常的”。这使得Apache可以将多个请求分派给免费的应用程序实例。
任何合理的数据库都是针对高级别的并发请求而设计的,因此应该能够处理大量的应用程序实例。
根据您的服务器资源,运行多个Mongrel实例有很大好处 - 它实际上是提供并发请求的唯一方法。
即使在小内存主机(比如512mb)上,如果您的Rails应用程序使用100mb内存,您可以轻松地运行多个实例而不会耗尽资源 - 然后您可以提供与实例一样多的并发请求
Sliecehost有一些很棒的文章,如:http://articles.slicehost.com/2009/4/17/centos-apache-rails-and-mongrels