CQRS
将系统中的操作分为两类,即「命令」(Command) 与「查询」(Query)。命令则是对会引起数据发生变化操作的总称,即我们常说的新增,更新,删除这些操作,都是命令。
而查询则和字面意思一样,即不
会对数据产生变化的操作,只是按照某些条件查找数据。这样可以根据查询的需求来优化查询模块的性能,例如使用读取专用的数据库或缓存来提高查询性能。
单数据库 CQRS
Command 在域中执行用例,从而修改实体的状态,然后通过 ORM 将实体保存到数据库中。
Query 直接通过数据访问层执行,数据访问层要么是使用各种 ORM,要么通过存储过程。
双数据库 CQRS
命令端使用针对写操作优化的数据库。查询端使用针对读取操作优化的数据库。
if (apiType.getIsQuery()) {
//如果是查询类接口
data = this.queryHandle(originalRequestInfo, apiType);
} else {
//如果是命令类接口
data = this.commandHandle(originalRequestInfo, apiType);
}
CQRS是一种设计模式,它将系统操作分为命令和查询两大类。命令用于修改数据,如增删改,而查询则只负责数据检索,不改变状态。通过这种方式,可以对查询进行性能优化,如使用读取专用数据库或缓存。单数据库CQRS中,命令和查询在同一数据库操作,而在双数据库CQRS中,写操作和读操作分别在不同的数据库上进行,以实现更好的读写性能。
782

被折叠的 条评论
为什么被折叠?



