2012-10-13 41 views
1

一個新手問題:如果我不使用Sagas或pub/sub模型,是否需要任何帶NServiceBus的持久層?NServicebus沒有任何持久性?

默認的持久性是RavenDB,我想知道如果我只是使用NSB沒有RavenDB或任何持久層?

附註: 目前我必須先運行RavenDBServer.exe才能使用NserviceBus,所以如果我開始使用NServiceBus,我不想在生產環境中運行其他應用程序。這可能是我的安裝問題。

回答

2

NServiceBus只使用持久存儲發佈/訂閱訂閱和傳奇狀態。如果你不使用這些,那麼你不需要RavenDB或其他任何實現。我相信NServiceBus.Core二進制文件默認與RavenDB DLL捆綁在一起,但在你的情況下它不會在生產中需要。

+3

這幾乎是完全正確的。還有第二級重試功能,Bus.Defer和調度,所有這些都利用了我們的持久時間管理,這需要某種可靠性的持久性。 –

+0

感謝Udi,我完全忽略了這些! – eulerfx

+0

但是,所有這些持久性故事都可以配置爲通過可插入體系結構使用SQL或其他方式。即使作爲序列化XML存儲在文件系統上,在技術上也是可行的。 –

0

如果我理解正確,您也可以使用我相信在內存持久性中使用的NServiceBus.Lite配置文件。這是一個很好的方式,因爲您正在開發並嘗試學習NServiceBus。但是,我不確定你是否想在生產中這樣做。在數據庫或文件系統中保留一些持久性以確保應用程序在出現錯誤或重新啓動應用程序時的可靠性會更好。