系统架构设计师 · 高频练习

CQRS 为什么把读模型和写模型分开?

高级 单选题 第 297 题 中等 系统架构设计师CQRS读写模型分离架构模式
题目

某业务系统写入时需要严格校验业务规则和事务一致性,而查询侧需要面向报表、搜索和列表展示做复杂聚合。架构师将命令写入模型与查询读取模型分开设计,以便分别优化。该架构思想通常称为()。

A CQRS
B 单机热插拔
C 瀑布模型需求冻结
D 数据库主键自增
题目类型:原创高频考点题 用途:用于帮助理解系统架构设计师相关考点和答案解析,不等同于官方真题。
书木兰刷题练习 适合懒人、小白的刷题通关平台
正确答案
A
答案解析

CQRS 即 Command Query Responsibility Segregation,核心是把改变状态的命令模型和读取数据的查询模型分开。写模型可以更关注业务规则、一致性和领域行为;读模型可以按查询场景做冗余、聚合、索引和缓存优化。它适合读写复杂度差异明显的系统,但会增加同步、最终一致性和架构复杂度。

选项分析

A

正确。CQRS 强调命令写模型和查询读模型职责分离。

B

错误。热插拔是硬件维护能力,与读写模型无关。

C

错误。瀑布模型是开发过程模型,不是架构读写分离模式。

D

错误。主键自增只是数据库标识生成方式。

本题为什么容易错

容易把 CQRS 和数据库读写分离混在一起。主从读写分离通常是部署和数据复制层面的优化,CQRS 更强调业务模型和职责拆分。

先看结论

简短答案

CQRS 为什么把读模型和写模型分开,正确答案是 A(CQRS)。CQRS 即 Command Query Responsibility Segregation,核心是把改变状态的命令模型和读取数据的查询模型分开。写模型可以更关注业务规则、一致性和领域行为;读模型可以按查询场景做冗余、聚合、索引和缓存优化。它适合读写复杂度差异明显的系统,但会增加同步、最终一致性和架构复杂度。

解析

易混淆概念对比表

概念本题判断区别要点记忆提示
CQRS 本题正确答案 正确。CQRS 强调命令写模型和查询读模型职责分离。 看到题干核心场景时优先联想到它
单机热插拔 本题干扰项 错误。热插拔是硬件维护能力,与读写模型无关。 看到该词不要急着选,先判断是否真正解决题干问题
瀑布模型需求冻结 本题干扰项 错误。瀑布模型是开发过程模型,不是架构读写分离模式。 看到该词不要急着选,先判断是否真正解决题干问题
数据库主键自增 本题干扰项 错误。主键自增只是数据库标识生成方式。 看到该词不要急着选,先判断是否真正解决题干问题
本题易混淆选项怎么区分
  • 单机热插拔:错误。热插拔是硬件维护能力,与读写模型无关。
  • 瀑布模型需求冻结:错误。瀑布模型是开发过程模型,不是架构读写分离模式。
  • 数据库主键自增:错误。主键自增只是数据库标识生成方式。
复习

知识点详解

CQRS是系统架构设计师考试中需要结合场景理解的考点。围绕“CQRS 为什么把读模型和写模型分开”这类题目,复习时要先看题干描述的是概念定义、适用场景、作用效果,还是与其他选项的区别。本题的题干关键词是“某业务系统写入时需要严格校验业务规则和事务一致性,而查询侧需要面向报表、搜索和列表展示做复杂聚合。架构师将命令写入模型与查询读取模型分开设计,以便分别优化。该架构思想通常称为()”,它指向的核心答案是 A(CQRS)。

备考速记

备考速记:题干如果强调“架构模式”中的关键目标,就先联想到 CQRS;如果选项里出现 单机热插拔、瀑布模型需求冻结、数据库主键自增,不要只看名称熟悉,要判断它们是否真正对应题干场景。

CQRS 在架构模式场景中的作用

CQRS在本题中的核心价值,是解决“某业务系统写入时需要严格校验业务规则和事务一致性,而查询侧需要面向报表、搜索和列表展示做复杂聚合。架构师将命令写入模型与查询读取模型分开设计,以便分别优化。该架构思想通常称为()”这个场景问题。复习时不要只背选项名称,还要理解它为什么适用于该场景,以及它能解决哪类安全、流程或管理问题。

拓展

同类题怎么考

  • 给出架构模式场景,判断应该选择哪个概念、工具、协议或管理过程。
  • 考查CQRS的作用,要求从四个相近选项中找出最符合题干目标的一项。
  • 把CQRS和单机热插拔、瀑布模型需求冻结、数据库主键自增放在一起考,重点看适用场景是否一致。
  • 题干通常会出现一个关键动作或目标,先定位关键词,再回到选项逐一排除。
CQRS 在系统架构设计师软考中的考法

软考选择题通常不会只考概念定义,还会把CQRS放到架构模式场景中,要求判断它的作用、适用范围或与相近概念的区别。遇到这类题时,先抓住题干中的业务场景,再看哪个选项最能解决该场景下的核心问题。

解题思路

题干说写入侧重规则和一致性,查询侧重报表、搜索、聚合,这就是读写关注点不同。老师讲 CQRS 时会提醒:它不是为了炫技拆系统,而是当读和写真的长得不像时,才考虑分开优化。

考点定位

架构模式题要抓意图。CQRS 不是普通主从读写分离,它更强调命令职责和查询职责在模型层面的分离。

易错提醒

  • 简单系统也强行使用 CQRS,增加不必要复杂度。
  • 读模型和写模型同步机制没有设计清楚,用户看到旧数据却没有提示。
  • 把 CQRS 当成强一致方案,忽略很多实现会采用最终一致。

备考提示

  • 看到命令、查询、读模型、写模型、分别优化,优先想到 CQRS。
  • CQRS 可以和事件溯源、消息队列、最终一致性一起复习,但不要把它们混成一个概念。

你可能还想了解

  • CQRS 为什么把读模型和写模型分开?
  • CQRS是什么?
  • CQRS在系统架构设计师考试中怎么考?
  • 系统架构设计师CQRS题怎么理解?
  • CQRS为什么要分离读写模型怎么考?
  • CQRS和读写分离区别怎么考?

本文小结

本题核心考点是CQRS在架构模式场景中的判断和应用。遇到类似题目时,先看题干描述的目标,再判断哪个选项最符合场景;本题应选择 A(CQRS)。