gpt4 book ai didi

domain-driven-design - CQRS如何为更具扩展性的应用做出贡献

转载 作者:行者123 更新时间:2023-12-04 16:44:22 25 4
gpt4 key购买 nike

最近,我已经阅读了很多有关CQRS体系结构的文章。关于为什么应该使用CQRS的最重要的要点之一就是可伸缩性。

现在,我不太了解它是如何工作的。

假设您拥有typical CQRS应用程序设计。

  • 两个数据存储区
  • 命令一侧的一个
  • 一面用于查询方
  • 处理完命令后,将发送一个事件,该事件可以更新第二个数据存储区

  • 人们通常说拥有一个用于查询的数据存储区和一个用于处理命令的数据存储区会使您的应用程序更具可伸缩性。
    但是,如果存储事件数据的第二个数据存储需要响应查询请求,并且又不断需要根据传入的事件进行自我更新,那么这将如何工作?

    为什么没有一个数据存储区,用于存储命令,并且查询端可以在其中重新使用存储的数据来获取其结果数据?

    最佳答案

    您可能会发现从old blog post自己阅读此Greg Young很有趣,他在其中解释了CQRS的确切含义。

    CQRS并不是要拥有两个不同的商店,而是如Greg的文章所述:

    CQRS is simply the creation of two objects where there was previously only one. The separation occurs based upon whether the methods are a command or a query



    您在此处描述的是更多事件源。

    现在回到您的问题: How can CQRS contribute to more scalable applications?格雷格也回答了:

    CQRS allows to host two services differently eg: we can host the read service on 25 servers and the write service on two. The processing of commands and queries is fundamentally asymmetrical, and scaling the services symmetrically does not make a lot of sense.



    就是这样!

    关于domain-driven-design - CQRS如何为更具扩展性的应用做出贡献,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24135570/

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