【问题标题】:Why use RavenDB with NServiceBus为什么将 RavenDB 与 NServiceBus 一起使用
【发布时间】:2015-07-21 15:56:30
【问题描述】:

我在 Pluralsight 上观看了 NServiceBus 简介,演示者同时使用 MSMQ 和 RavenDB 来存储消息。为什么是这样?将消息存储在数据库中而不只是 MSMQ 有什么好处?搜索我发现了很多关于如何将 RavenDB 与 NServiceBus 一起使用的结果,但不是为什么要这样做。

【问题讨论】:

    标签: ravendb nservicebus


    【解决方案1】:

    NServiceBus 本身使用 RavenDb 进行持久化,而不是作为传输。所以,我不明白你为什么说 RavenDb 是用来“保存消息”的。您可能已经看到 ServicePulse 使用 RavenDb 来存储消息,下面将对此进行详细介绍。

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

    • 传奇数据
    • 超时
    • 订阅

    还有另外两种不常用的用法:

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

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

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

    我不确定视频到底显示了什么,但它也可能是 ServicePulse,它是特定平台的一部分,而不是 NServiceBus 组件本身。 ServicePulse 使用 RavenDb 进行自己的数据存储(包括消息)。

    RavenDb 不用作 NServiceBus 传输,至少 Particular 本身不使用。

    【讨论】:

    • +1 这是正确答案,但恕我直言,*transport (MSMQ) 和 persistence (RavenDB) 之间的区别可能更明确.
    • 感谢您的反馈,Phil,我会把它放在首位。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多