我正在考虑为我的项目使用CQRS架构。这意味着拥有一个读写数据库以及一个更新过程,以使两个数据库保持同步。
由于无论如何我都会在每个命令之后更新读取(elasticsearch)数据库,所以我想知道:拥有一个写入数据库有什么用?
答案 0 :(得分:2)
分离的目的是在多个数据库之间分配负载。使用一个写优化数据库进行写操作,并将读优化数据库更新为异步数据库。这样一来,写负载不会影响读数据库。我们可以独立缩放它们。
另一个原因是读写模式可能不同。您可以在首页上列出一个博客站点,其中列出了最近的博客,您需要写入所有数据才能写入数据库,但是只需要一些数据即可列出或建立索引。因此,在基础架构级别使用CQRS可为我们提供独立的数据库可伸缩性。