2015-11-05 48 views
2

我們的Rails 4應用程序運行在一個thin -s 16 ...多處理服務器中,Apache作爲前端,其反向代理處理內部請求。所有的工作都很好,對我們的用戶數量來說性能還可以。如果與Rails/ActiveRecord一起使用,它是否很簡單?

因爲一切正常,所以我真的不在乎Thin是如何工作的。我最近偶然發現了所有的Fibers和EventMachine的優點,並且在其中閱讀了很多。

Thin使用EventMachine處理Rack請求。因此,通過設計,它可以同時處理多個請求並使用一個ruby進程。不幸的是,雖然Thin文檔功能足以讓您能夠在幾分鐘的時間內運行服務器,但對內部工作而言卻相當安靜。

我是否正確地認爲所有關於「併發性」的討論都是在我運行Thin with Rails時沒有提及? ActiveRecord,數據庫驅動程序,模板處理等可能不是EM啓用的,不使用Fibre等,因此無論如何將阻止單個進程,同時使用大部分DB重的服務器端處理時間應用。

我的所有研究似乎都導致了這個結論;不幸的是,薄網站/文檔沒有提到這一點。坦率地說,我很困惑「併發」這個詞甚至是如何在這裏輸入圖片...

有人可以爲我清楚嗎?我是否缺少一些基本的信息,或者是否在http://code.macournoyer.com/thin/上吹捧的「併發性」,意指關於手動製作的不使用Rails或其他「重度」中間件的Rack服務器?

謝謝!

回答

0

你說得對,使用Rails的時候不會是併發的。任何調用數據庫驅動程序/文件系統將阻止整個ruby解釋器。它可能會在Rails 5中進行部分更改,但現在只需要運行大量的工作進程。

+0

感謝您確認我的懷疑。 – AnoE

相關問題