Rails如何处理不同服务器上的并发请求?

时间:2012-04-28 18:22:23

标签: ruby-on-rails ruby ruby-on-rails-3 passenger webrick

以前曾经问过,但从未特别详尽地回答。

假设您已经在支持它的几个Web服务器之一上运行Rails,例如WEBrick,Mongrel,Apache和Nginx(通过Passenger Phusion)。服务器收到两个并发的GET,会发生什么?这在任何地方都有明确记录吗?

基本上我很好奇:

  • 每次都是由服务器创建新的实例或rails吗?
  • 它是否以某种方式尝试重用现有实例(已加载Rails的ruby进程?)来处理请求?
  • 是不是开始新的ruby进程并且重新加载Rails的速度很慢?

谢谢!任何有关详尽说明的链接都将不胜感激。

1 个答案:

答案 0 :(得分:0)

有些人使用工人(apache,phusion,unicorn),有些则没有。如果你不这样做 使用工作者,它实际上取决于您的应用程序是线程安全的 或不。如果您是,可以一次提供多个请求, 否则会阻挡Rack::Lock。如果有工人 (单独的流程),他们每个人都做一个请求然后回去 主机为其分配新请求的池。 Read on

相关问题