【发布时间】:2015-07-21 15:56:30
【问题描述】:
我在 Pluralsight 上观看了 NServiceBus 简介,演示者同时使用 MSMQ 和 RavenDB 来存储消息。为什么是这样?将消息存储在数据库中而不只是 MSMQ 有什么好处?搜索我发现了很多关于如何将 RavenDB 与 NServiceBus 一起使用的结果,但不是为什么要这样做。
【问题讨论】:
标签: ravendb nservicebus
我在 Pluralsight 上观看了 NServiceBus 简介,演示者同时使用 MSMQ 和 RavenDB 来存储消息。为什么是这样?将消息存储在数据库中而不只是 MSMQ 有什么好处?搜索我发现了很多关于如何将 RavenDB 与 NServiceBus 一起使用的结果,但不是为什么要这样做。
【问题讨论】:
标签: ravendb nservicebus
NServiceBus 本身使用 RavenDb 进行持久化,而不是作为传输。所以,我不明白你为什么说 RavenDb 是用来“保存消息”的。您可能已经看到 ServicePulse 使用 RavenDb 来存储消息,下面将对此进行详细介绍。
NServiceBus 的不同部分需要三种基本类型的持久性:
还有另外两种不常用的用法:
所有这些都被描述为in the docs
您可以使用任何受支持的持久性引擎,包括 RavenDb,用于这些目的。由于它是文档数据库,因此用于这些目的比使用关系数据库的 NHibernate 持久性要容易得多。
我不确定视频到底显示了什么,但它也可能是 ServicePulse,它是特定平台的一部分,而不是 NServiceBus 组件本身。 ServicePulse 使用 RavenDb 进行自己的数据存储(包括消息)。
RavenDb 不用作 NServiceBus 传输,至少 Particular 本身不使用。
【讨论】: