标准答案
- 先确认目标用户、读写比例、峰值、延迟目标、数据保留、一致性要求和不可接受的失败,避免在模糊前提下堆组件。
- 拆出关键业务流程、状态、存储、接口和异步任务,区分核心路径与可延后或可降级能力。
- 针对热点、容量、失败和数据一致性提出缓存、分片、队列、限流、幂等或多副本等方案,并明确代价。
- 最后说明关键指标、压测、故障演练、灰度和回滚路径,证明方案能被运营而不只是画出来。
题目解析
好答案不是列出更多名词,而是每一个组件都对应一个已说明的问题。例如引入队列是为了削峰和重试,不是因为“高并发就要 MQ”。
当信息不足时应主动提出假设并说明假设改变时方案如何调整,这比假装所有条件已知更体现工程判断。
常见误区
- 一开始就画微服务和 Kafka,没有问规模与一致性。
- 只讲正常流程,不讲失败、重复、监控和恢复。
- 方案复杂度远超过题目规模,忽略成本和团队能力。