gpt4 book ai didi

azure - CQRS:读取端 ACID

转载 作者:行者123 更新时间:2023-12-02 06:47:29 26 4
gpt4 key购买 nike

我经常读到,CQRS 的一大优势是在读取端拥有非规范化数据。例如。可以存储冗余的数据字段和子对象以避免连接。但这也意味着单个事件可能会导致读取端发生多个更新操作,因为实体的状态更改必须反射(reflect)在多个读取端位置。

这是否意味着您需要读取端的原子事务支持?许多 NoSQL 数据库仅支持一个集合或一个分区内的事务。

基于 CQRS 的系统如何在现实生活中处理这个问题?

  • 他们在读取端使用 SQL 数据库吗?
  • 他们仅使用非冗余数据吗?那么,为什么首先要有一个阅读商店呢?
  • 是否有支持云端原子事务的高级数据库技术?

最佳答案

Doesn't that imply you need atomic transaction support on the read-side?

不,不一定,但您需要防止并发更新。

Do they use SQL databases on the read-side?

在我的最新项目中,我的大部分读取模型都使用 MongoDB。该数据库没有事务支持,但我不需要,因为我使用乐观锁定。我写了一篇文章here关于这一点,请使用 PHP 中的示例。我的想法是,我通过使用版本(作为唯一索引)来检测并发更新并重试最后一个。

Do they use non-redundant data only? Then, why having a read-store in the first place?

我使用完整的数据非规范化。这意味着我在一份文档中拥有特定 View 所需的所有信息。

关于azure - CQRS:读取端 ACID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46213938/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com