[英]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.