我們當前的工作項目是一個新的MVC網站,它將使用WCF服務,主要通過Web服務訪問第三方帳單系統以及用於用戶個性化的小型SQL數據庫。 WCF服務使用nHibernate作爲SQL數據庫。網絡農場中的nHibernate策略
我們希望實施某種網絡服務器場以實現負載平衡以及故障轉移和維護。如果有多個WCF服務在運行,我正試圖決定處理nHibernate緩存和數據庫併發的最佳方式。
有些場景我一直在想......
1)多IIS服務器,一個服務器WCF。通過這種設置,WCF服務器將成爲單點故障,但nHibernate緩存或數據庫併發將不存在問題。
2)多個IIS服務器,每個服務器都有自己的WCF服務。這消除了單點故障,但是現在,一臺機器上的nHibernate不會知道另一臺機器所做的數據庫更改。
對於數字2的一些解決方案是使用IStatelessSession,所以我們沒有做任何緩存,nHibernate總是直接從數據庫中獲取。這可能是最可行的,因爲我們的個性化數據庫中只有很少的對象。我也在考慮一個二級緩存,比如memcached或者Velocity,但是對於這個系統來說這可能是過度的。
我在這裏看看有沒有人有過這樣的體系結構的經驗,並得到一些解決方案的想法。謝謝!
「但我用nHibernate實現了一個二級查詢緩存,並且它工作得很好。」我可以問哪個二級緩存實施你去了,爲什麼? – 2010-03-20 19:55:07
Memcahced http://memcached.org/ – 2010-03-22 13:53:48