为什么将RavenDB与NServiceBus一起使用

时间:2015-07-21 15:56:30

标签: ravendb nservicebus

我在Pluralsight上观看了NServiceBus简介,演示者正在使用MSMQ和RavenDB来存储消息。为什么是这样?将消息存储在数据库中有什么好处,而不仅仅是MSMQ?搜索我已经找到了很多关于如何将RavenDB与NServiceBus一起使用的结果,但不是为什么你应该这样做。

1 个答案:

答案 0 :(得分:7)

NServiceBus本身使用RavenDb进行持久化,而不是传输。所以,我不明白为什么你说RavenDb用于“保存消息”。您可能已经看过使用RavenDb存储消息的ServicePulse,更多关于此信息。

NServiceBus的不同部分需要三种基本类型的持久性:

  • 佐贺数据
  • 超时
  • 订阅

还有两个额外的用法,不经常使用:

  • 发件箱
  • 网关重复数据删除

所有这些都被描述为in the docs

您可以将任何支持的持久性引擎(包括RavenDb)用于这些目的。由于它是文档数据库,因此比使用关系数据库的NHibernate持久性更容易用于这些目的。

我不确定视频的确切内容,但它也可能是ServicePulse,它是特定平台的一部分,但不是NServiceBus组件本身。 ServicePulse使用RavenDb来存储自己的数据(包括消息)。

RavenDb不用作NServiceBus传输,至少不是特定本身。