2011-06-02 31 views
0

我可以使用NHibernate的Web應用程序與100-300或300-1000(可能在未來)用戶在線?我如何知道NHibernate是否適合我的應用程序?NHibernate和加載

+2

請參閱http://stackoverflow.com/questions/5090191/is-nhibernate-is-right-choice-for-enterprise-applications – Vadim 2011-06-02 19:12:48

+0

這些併發用戶或總數?您的數據庫架構是否適合許多併發訪問進行規範化?您的Web服務將採用何種級別的緩存? – 2011-06-02 19:13:09

+0

是的,用戶是併發的。我還沒有數據庫方案,但我知道服務器 - MSSQL 2008.我打算在高速緩存服務器上使用緩存呈現的HTML,但只適用於高負載頁面。可能是,我將使用NHibernate二級緩存或NHibernate Search。 – Andy 2011-06-03 03:42:26

回答

1

當然可以。但是使用自身的框架並不能保證你的應用程序能夠快速執行。

有一些架構原則如何構建高性能應用程序,但我最喜歡Event-Driven architectureCQRS。儘管對於你的系統來說這可能是矯枉過正,而你不想構建分佈式應用程序。在這種情況下,我會建議你使用一些CQRS原則使用單節點 - 仍然是單獨讀寫操作,並使用ConcurrentQueue而不是消息框架。你將能夠使你的應用程序分發得相當快。你也可以看看Lokad.CQRS。 肯定NHibernate可以用於與他們的協作。

NHibernate是相當複雜的框架,它有一個很大的學習曲線。所以如果你現在不熟悉NHibernate,我推薦你使用NHibernate profiler

1

它當然可以處理這些類型的數字。問題是,恕我直言,使用NHibernate(或任何其他ORM)很容易做出不太合適的代碼,特別是關於SELECT + 1問題,一些生成的SQL等等。

無論如何,和xelibrion一樣,建議使用NHibernate Profiler。你應該很容易發現你的botlene並解決它們。

您還提到了NHibernate二級緩存,它非常適用,並且應該可以幫助您的應用輕鬆擴展,並且可以很好地支持分佈式緩存或更簡單的場景。