2010-03-17 131 views
1

我有一個Windows服務,接收大量的數據需要轉換並保存到數據庫。爲確保我們不會丟失數據,我希望爲數據創建一個「寫入緩存」,無論數據庫是否在線,這些數據都會繼續。一旦數據庫再次變得可用,我希望它將緩存內容刷新回數據庫。C#離線數據庫寫入緩存#

我見過一些文章指出我可以用NHibernate做到這一點,但我還沒有確定地發現它。有什麼選擇存在,NHibernate的適當方向?

回答

0

我同意Paco,但仍然有一些情況下,如果數據庫更新太頻繁,那麼你可能需要按照你的要求執行。

這就是所謂的後寫方案

請看下面的文章

http://wiki.tangosol.com/display/COH32UG/Read-Through,+Write-Through,+Refresh-Ahead+and+Write-Behind+Caching

如果你覺得你真的需要它,你可以使用nCache的服務器 http://www.alachisoft.com/ncache/

或者有其他應用程序也可用於處理這種情況,您也可以編寫自己的應用程序或代碼來確保這一點。

問候 Mubashar

1

如果寫入緩存脫機會怎麼樣?比你需要另一個writecache來確保第一個writecache。這是創建(假)可用性的遞歸模式。使用多臺機器的集羣儘可能小的可用性。 sql數據庫的可用性可能高於系統中的任何其他組件。

我不處理這些類型的服務異常,我只是在它的原始輸入再次調用服務(間接),當它失敗的任何子系統的停機時間。原始輸入可以是你的「writecache」。

+0

這是一個很值得非的答案。假設服務正在使用正在運行的機器的HDD作爲寫入緩存,則它同時失敗的可能性(即寫入緩存脫機),並且數據庫服務器脫機的可能性非常低。你的建議確實有效,但你並沒有回答這個問題。 – snicker 2010-03-17 22:36:06