2015-07-21 42 views
1

我觀看了Pluralsight上的NServiceBus簡介,演示者使用MSMQ和RavenDB來存儲消息。爲什麼是這樣?將消息存儲在數據庫中的好處是什麼,而不僅僅是MSMQ?搜索我發現了很多關於如何使用RavenDB和NServiceBus的結果,但不是爲什麼你應該這樣做。爲什麼使用RavenDB和NServiceBus

回答

7

NServiceBus本身使用RavenDb作爲持久性而不是傳輸。所以,我不明白你爲什麼說RavenDb被用來「保存消息」。這可能是因爲你已經看到了使用RavenDb存儲消息的ServicePulse,更多關於下面的內容。

有需要NServiceBus的不同部分三種基本類型的持久性:

  • 佐賀數據
  • 超時
  • 訂閱

還有兩個附加的用法,不屬於經常使用:

  • 發件箱
  • 網關重複數據刪除

所有這些都說明in the docs

你可以使用任何支持的持久性引擎,包括RavenDb,對於那些目的。由於它是文檔數據庫,因此比使用關係數據庫的NHibernate持久性更容易實現這些目的。

我不確定視頻顯示的是什麼,但它也可能是ServicePulse,它是特定平臺的一部分,但不是NServiceBus組件本身。 ServicePulse將RavenDb用於其自己的數據存儲(包括消息)。

RavenDb不用作NServiceBus傳輸,至少不是由特定的本身。

+0

+1這是正確的答案,但恕我直言可能會更清楚** transport *(MSMQ)和* persistence *(RavenDB)之間的區別。 –

+1

感謝您的反饋,菲爾,我會把它放在最上面。 –

相關問題