簡體   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