CQRS架构,C端的职责是处理从上层发送过来的command。对于单台机器来说,我们如何尽快的处理command呢?本文想通过不断提问和回答的方式,把我的思考写出来。 首先,我们最容易想到的是使用多 ...
前言 ENode是一个基于消息的架构,使用ENode开发的系统,每个环节都是处理消息,处理完后产生新的消息。本篇文章我想详细分析一下ENode框架内部是如何实现整个消息处理流程的。为了更好的理解我后面的流程的描述,我觉得还是应该先把ENode的架构图贴出来,好让大家在看后面的分析时,可以对照这个架构图进行思考和理解。 ENode架构图 ENode框架内部实现流程分析 Controller发送ICo ...
2014-07-22 01:32 26 4583 推荐指数:
CQRS架构,C端的职责是处理从上层发送过来的command。对于单台机器来说,我们如何尽快的处理command呢?本文想通过不断提问和回答的方式,把我的思考写出来。 首先,我们最容易想到的是使用多 ...
前言 今天是个开心的日子,又是周末,可以轻轻松松的写写文章了。去年,我写了ENode 1.0版本,那时我也写了一个分析系列。经过了大半年的时间,我对第一个版本做了很多架构上的改进,最重要的就是让ENode实现了分布式,通过新增一个分布式消息队列EQueue来实现。之所以要设计一个分布式的消息队列 ...
Conference架构概述 先贴一下Conference案例的在线地址,UI因为完全拿了微软的实现,所以都是英文的,以后我有空再改为中文的。 Conference后台会议管理:http://www.enode.me/conference Conference前台预定座位:http ...
开源地址:https://github.com/tangxuehua/enode 因为enode框架的思想是,一次修改只能新建或修改一个聚合根;那么,如果一个用户请求要涉及多个聚合根的新建或修改该怎么办呢?本文的目的就是要分析清楚这个问题在enode框架下是如何解决的。如果想直接通过看代码的朋友 ...
开源地址:https://github.com/tangxuehua/enode 上一篇文章,介绍了enode框架的物理部署思路。本文我们再简单分析一下Command Service的API设计: Command Service在enode框架中的地位非常重要,用户使用enode框架的主入口 ...
开源地址:https://github.com/tangxuehua/enode 上一篇文章,简单介绍了enode框架内部的整体实现思路,用到了staged event-driven architecture的思想。通过前一篇文章,我们知道了enode内部有两种队列:command queue ...
问题背景 Conference案例,是一个关于在线创建会议(类似QCon这种全球开发者大会)、在线管理会议位置信息、在线预订某个会议的位置的,这样一个系统。具体可以看微软的这个项目的主页:http://cqrsjourney.github.io。 然后我们设计了一个Conference聚合根 ...
前言 前面的文章,我介绍了Conference案例的业务、上下文划分、领域模型、架构,以及代码整体流程。接下来想针对案例中一些重要的场景,分别做进一步的分析。本文想先介绍一下Conference案例的核心业务场景 - 订单处理减库存的设计。 下单以及订单处理流程描述 下单 ...