我在Pluralsight上观看了NServiceBus简介,演示者正在使用MSMQ和RavenDB来存储消息。为什么是这样?将消息存储在数据库中有什么好处,而不仅仅是MSMQ?搜索我已经找到了很多关于如何将RavenDB与NServiceBus一起使用的结果,但不是为什么你应该这样做。
答案 0 :(得分:7)
NServiceBus本身使用RavenDb进行持久化,而不是传输。所以,我不明白为什么你说RavenDb用于“保存消息”。您可能已经看过使用RavenDb存储消息的ServicePulse,更多关于此信息。
NServiceBus的不同部分需要三种基本类型的持久性:
还有两个额外的用法,不经常使用:
所有这些都被描述为in the docs
您可以将任何支持的持久性引擎(包括RavenDb)用于这些目的。由于它是文档数据库,因此比使用关系数据库的NHibernate持久性更容易用于这些目的。
我不确定视频的确切内容,但它也可能是ServicePulse,它是特定平台的一部分,但不是NServiceBus组件本身。 ServicePulse使用RavenDb来存储自己的数据(包括消息)。
RavenDb不用作NServiceBus传输,至少不是特定本身。