<div id="ng5vq"><tr id="ng5vq"></tr></div>

  • <div id="ng5vq"></div>

      <em id="ng5vq"></em>
      <div id="ng5vq"></div>

          本站专注区块链信息及金融服务,但不代表任何投?#24335;?#35758;

          解析以区块链为持久层的CQRS模型作用(下)

          区块链研究实验室 ·

          02月11日

          热度: 12169

          命令查询的责任分离Command Query Responsibility Segregation (简称CQRS)模式是一种架构体?#30340;?#24335;,能够使改变模型的状态的命令和模型状态的查询实现分离。

          CQRS简述

          命令查询的责任分离Command Query Responsibility Segregation (简称CQRS)模式是一种架构体?#30340;?#24335;,能够使改变模型的状态的命令和模型状态的查询实现分离。


          因此,我们将使用命令模型来更新状态,使用查询模型来获取状态。

          CQRS通常与 Event-Sourcing一起使用,但不一定要一起使用。 Event-Sourcing确保在?#24405;?#23545;象中捕获状态的每个更改并保持不变。

          Event-Sourcing有一些我们想要应用于区块链的预期好处。

          • 完全重建:我们可以重建应用程序状态,从空应用程序的?#24405;?#26085;志中重新运行?#24405;?/span>

          • 时间查询:我们可以确定特定时间应用程序的状态。

          • ?#24405;?#22238;放:如果某些?#24405;?#20986;现错误,我们可以计算得出后果并给以修复。

          对于以上的应用,利用区块链技术是非常难实现的;

          什么是?#24405;?#26085;志?#31354;?#26159;一个保存所有?#24405;?#30340;数据库。

          命令和?#24405;?#19981;包含逻辑,只包含数据。它们是数据传输对象(DTO)。

          命令显示更改状态的意图。?#24405;?#20998;享发生的?#24405;?#36825;是一个巨大的差异。命令可能会失败,同时?#24405;?#20250;?#20174;?#31995;?#25345;?#24050;经发生的事情。

          为什么将CQRS模型与区块链一起使用是有意义的?

          我们需要代表一个应该随着时间的推移改变其状态并且仍然使用区块链的商业事物。


          CQRS模型帮助我们定义一组命令,我们将存储在区块链上,并使用公共API发布我们的查询模型。

          在链上存储命令有助于我们重新创建状态并审核第三方提供的状态缓存,以确定它是?#34892;?#36824;是无效。

          共享命令有助于我们快速让其他人了解如何通过可信网络与我们的域模型进行交互,而无需共享我们的域模型内部逻辑。

          作为一个团队,我们可以选择我们想要的共享信息级别。


          案例 - 共享命令:

          人们将需要

          a)依?#35838;?#20204;的API来阅读;

          b)模拟我们的模型逻辑以防出现问题并证明我们在作弊;

          案例 - 共享命令和模型逻辑:

          人们将

          a)依?#35838;?#20204;的API来阅读;

          b)创建一个应用程序来执行我们的模型逻辑而不依赖于我们的API;


          案例 - 共享所有应用程序:

          人们将 

          a)依赖我们的API来阅读 ;

           b)在他们的终端启动所有应用程序而不使用我们;

          共享模型逻辑和一切都有一个灰色限制。

          在我们的例子中,我们选择共享命令和模型逻辑。我们希望其他人能够自己执行此操作,并依赖于我们的某些特定逻辑,如复杂的查询模型。


          使用CQRS模型,我们能够以不同的方式扩展命令模型和查询模型。我们希望系统快速响应复杂的查询,但我们不介意慢写,因为资产创建或管理不像读取数据那么频繁。

          ?#36865;猓?#36825;种方法允许我们选择只是共享命令。对于选择分享内容和不分享内容的公司而言,这一点非常重要。

          想象中的公司差异化是如何管理信息,而不是控制资产创造。


          声明:本文为入驻“火星号”作者作品,不代表火星财经官方立场。转载请注明出处、作者和本文链接
          提示?#21644;?#36164;有风险,入?#34892;?#35880;慎。本资讯不作为投资理财建议。
          语音技术由科大讯?#21830;?#20379;

          推广
          相关新闻

          涨幅榜

          你可能?#34892;?#36259;的内容
          下一篇

          ChainDesk:MVC架构应用实现

          寻求报道 寻求融资 APP下载
          APP下载 扫描下载APP
          河北十一选五软件