2011-11-20 83 views
1

我想了解如何使用Rails進行「敏捷Web開發」一書中的Ruby on Rails。在書裏。我還沒有遠,但我有這個問題。我一直在從本書中引用「一個用戶」的網絡應用程序。例如,在書中它說「如果用戶點擊這個......如果用戶輸入這個...」等等。Ruby on Rails中的併發

當我有1000個用戶時會發生什麼?或100000個用戶?如何結合使用sqlite(我正在使用)來處理併發性?我是否假設用戶是一個用戶,並繼續構建Web應用程序,並且Ruby會自動處理併發性?

回答

0

Ruby on Rails和其他系統一樣工作。每個請求都以串行方式處理,並行處理多個請求,您(通常)使用多個服務器(多個物理/虛擬主機或在一個盒子上多次運行應用程序)。單擊一個鏈接的1000(或100000)用戶意味着對串行處理的服務器發出1000(或100000)個請求(與多個服務器上的負載平衡並行)。

對於數據庫,您通常不會將Sqlite用於生產Web服務器,而像MySql這樣的系統會自行處理請求中的併發(請注意,查詢通常是無狀態的,因此一旦SQL服務器處理查詢,它通常可以丟棄與之相關的狀態)