【问题标题】:CQRS: How to implement eventual consistency between MongoDB (read model) and SQL Server (write model)CQRS:如何实现 MongoDB(读取模型)和 SQL Server(写入模型)之间的最终一致性
【发布时间】:2015-09-21 17:27:55
【问题描述】:

我有一个项目使用 CQRS 设计模式和领域驱动设计。在这个项目的读取端,我使用物化视图来构建读取模型,以便读取端和写入端可以通过 SQL Server 更新为一致。

我想重构我的项目并将 MongoDB 用于读取端。我对MongoDB了解不多。是否有任何算法或策略来保持 NoSQL 数据库 (MongoDB) 和关系数据库 (SQL Server) 之间的数据一致?

【问题讨论】:

    标签: sql-server mongodb domain-driven-design cqrs


    【解决方案1】:

    要同步您的查询(读取端)和命令(写入端)的数据存储,您可以使用以下策略之一:

    • 同步 - 每个命令也同步更新查询端数据存储
    • 异步 - 每个命令都会触发查询端数据存储的异步更新
    • 计划 - 预定义作业定期运行并更新查询端数据存储
    • 按需 - 查询端数据存储按需更新。例如,当请求到来时,如果检测到数据过时,您有某种算法会触发更新。

    因此,由您决定哪种策略最适合您的项目。

    只有使用 同步 方法才能获得强一致性。 其他选项会导致最终的一致性,并且它们会改变数据可能过时的时间。在 异步 方法中,您有以毫秒为单位的陈旧数据。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-16
      • 2018-06-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多