领域事件模型(四) CQRS模式

CQRS

将系统中的操作分为两类,即「命令」(Command) 与「查询」(Query)。命令则是对会引起数据发生变化操作的总称,即我们常说的新增,更新,删除这些操作,都是命令。
而查询则和字面意思一样,即不
会对数据产生变化的操作,只是按照某些条件查找数据。这样可以根据查询的需求来优化查询模块的性能,例如使用读取专用的数据库或缓存来提高查询性能。

单数据库 CQRS

Command 在域中执行用例,从而修改实体的状态,然后通过 ORM 将实体保存到数据库中。

Query 直接通过数据访问层执行,数据访问层要么是使用各种 ORM,要么通过存储过程。

双数据库 CQRS

命令端使用针对写操作优化的数据库。查询端使用针对读取操作优化的数据库。

				if (apiType.getIsQuery()) {
                    //如果是查询类接口
                    data = this.queryHandle(originalRequestInfo, apiType);
                } else {
                    //如果是命令类接口
                    data = this.commandHandle(originalRequestInfo, apiType);
                }

你可能感兴趣的:(DDD,领域事件模型)