繁体   English   中英

Phusion Passenger进程池解释

[英]Phusion Passenger process pool explained

我试图准确理解如何使用Phusion Passenger处理对rails应用程序的请求。 我已经阅读了Passenger文档(在这里找到: http//www.modrails.com/documentation/Architectural%20overview.html#_phusion_passenger_architecture ),我理解他们如何在内存中维护rails框架和应用程序代码的副本,以便通过启动应用程序的另一个实例,每个对应用程序的请求都不会陷入困境。 我不明白的是这些单独的应用程序实例如何在我的linux机器上共享原生ruby进程。 我一直在做一些研究,这就是我认为正在发生的事情:

一个请求命中Web服务器,该服务器调度Passenger以在Passenger的一个空闲工作进程上完成请求。 另一个请求几乎同时发生,并由另一个闲置的乘客工作流程处理。

此时,正在执行两个请求,这两个请求由两个不同的乘客工作进程管理。 Passenger在Linux的本机Ruby线程上为每个工作进程创建一个绿色线程。 使用上下文切换执行每个绿色线程,以便对一个Passenger工作进程的阻塞操作不会阻止执行其他工作进程。

我是在正确的轨道上吗?

谢谢你的帮助!

应用程序实例不“共享本机Ruby进程”。 应用程序实例 Ruby进程(或Node.js进程,或Python进程,具体取决于您的应用程序所使用的语言),也与“乘客工作进程”相同。 它也与线程无关。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM