首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在CQRS中去甲基化的最佳实践是什么?

在CQRS中去甲基化的最佳实践是什么?
EN

Stack Overflow用户
提问于 2010-06-24 13:37:16
回答 1查看 3.2K关注 0票数 5

我正试图创建一个解除数据库功能的deamon。

我使用ActiveMQ作为队列管理器,我有两个数据库:关系数据库(写+复制)和非规范化数据库(用于读取)。

我的问题是,对我的真实DB进行去denormalize的最佳实践是什么--我有一些想法:

  • MySQL proxy (与lua一起)读取队列(这是MySQL
  • Java守护进程中的
  • 作为读取队列
  • Cron选项卡的服务吗?(但我会有一段很长的等待时间,
EN

回答 1

Stack Overflow用户

发布于 2011-02-07 17:01:02

我不确定这是否是一个正式的“最佳”实践,但总的来说,我发现事件源和使用事件驱动写入和更新读模型是一个很好的实践。有了事件源,写模型就其本身而言并不是实体和关系,而是事件的历史(我知道这听起来很混乱)。

在事件源方面,您可以从Eventide如何在Ruby中实现事件源中学到更多。

我还在这里简要介绍了使用域事件的CQRS:http://lucisferre.net/2010/11/04/a-brief-introduction-to-cqrs/

然而,这并不能真正回答你眼前的问题,而且最终的结果可能并不适合你。既然您已经将“写”模型的状态存储在关系数据库中,那么触发器是一种可能的方法,但是这样做可以使您的系统非常以数据为中心。如果您可以使用代码中的触发器来完成相同的任务,那么它将更干净,更易于测试。

为此,我仍将使用域事件模式,并使用事件总线将事件发布到负责更新读取模型的事件处理程序。

想想这些事件和处理程序,比如SQL触发器,但是基于域设计和它的行为。Udi Dahan有很多关于这种方法的好材料,其中使用域事件来更新读取模型,但不使用事件源。http://www.udidahan.com/?blog=true

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3110434

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档