转自: http://www.cnblogs.com/netfocus/p/4150084.html#!comments
CQRS架构PPT分享
Posted on 2014-12-07 22:53 netfocus 阅读( 6253) 评论( 52) 编辑 收藏好久没有写文章了,最近工作比较忙。下周要到公司另一个部门做CQRS的分享,所以用一周时间整理了一个PPT。为了方便大家查看,我想直接贴到博客里最简单直接。
CQRS是一个不错的架构,但是要真正实践,还是很难的。我虽然学习了很多的理论,框架也实践了不少。但要真正应用到实际项目中,还是不那么容易的。到目前为止我个人也只在一个项目中实践过,但当初实践的时候也没有采用本PPT所提到的最终一致性的技术。不过我想,有兴趣就要坚持,坚持就是胜利。最近我在做另一个CQRS的案例,就是微软的那个CQRS Conference的例子。目前已经基本用ENode写好,但Web项目还没做好,没办法工作紧张,断断续续。
下面开始我的PPT吧:
1)聚合根的event是先save,再publish的;保存事件比较简单,如果你担心db保存太慢,可以采用NoSQL保存;关于group commit,完全是可行的,如果group commit失败,则自动转为单个event一个个save;总之,没保存好的事件,是不能publish的。
2)聚合根中不应该去访问外部系统;如果要做类似事情,可以在event Handler或者command handler里做,做完后再产生事件,然后事件响应者做后续的事情;具体可以看一下ENode的银行转账的例子中,检查账号是否可用的设计。