旧模板映射、事实边界与口述训练路线
本册只迁移和训练旧根 架构设计口述模板,不改写旧根。旧模板是表达骨架,不是生产经历证明;所有项目数字、个人职责和线上结果都必须先标事实等级,再进入三分钟、五分钟或十分钟版本。

图解读:正式图从旧根盘点进入事实分级,再按时间选择表达密度,最终经过诚实收束、项目套用和追问树回到证据校准。任何模板都不能跳过事实分级直接变成“我做过”;可编辑源见 PlantUML(开源建模工具)路线图。
1. 旧根迁移账本
1.1 二十四个标题与十八套模板如何一一落位
热门面试题
- 问题:为什么保留旧根而新增训练册?
- 考点:兼容边界、单一职责和可追溯性。
- 回答思路:先区分原始模板与训练增强,再说明不覆盖旧材料的原因。
- 详细答案:旧根保存最短可复述骨架,训练册负责标题映射、事实等级、时间盒、项目证据和追问树。两者分离后,旧材料仍可按原路径复习,新训练规则也能独立审计;若直接重写旧根,历史模板数量和原始措辞会失去可核对基线。
- 进阶追问:两份材料内容不一致时以谁为准?
- 进阶回答:模板原文以旧根为准,事实等级和训练动作以本册为准;项目事实仍回到简历、代码、需求、发布或事故证据。
- 问题:十八套模板是怎样统计出来的?
- 考点:迁移计数、边界识别和防漏机制。
- 回答思路:按代码块而不是标题数量统计,并解释组成。
- 详细答案:十八套模板由通用、选型、分布式事务、高可用四套,库存、支付、履约、告警四套项目模板,六套稳定性与容量模板,以及四套业务指标与埋点模板组成。标题有二十四个,是因为目录标题还包含分组和训练要求,不能把标题数等同于模板数。
- 进阶追问:四条反问算模板吗?
- 进阶回答:不计入十八套代码块模板,单独作为面试末尾的岗位约束探针保留。
- 问题:迁移账本怎样避免漏掉旧标题?
- 考点:完整性校验和映射粒度。
- 回答思路:按标题层级编号,记录原用途、训练动作和事实风险。
- 详细答案:先按九个二级标题和十五个三级标题建立二十四项清单,再把每项归入“骨架、项目、容量、指标、反问、训练要求”六类。每类都必须有训练去向;没有代码块的分组标题也要保留,因为它决定模板上下文和追问入口。
- 进阶追问:后续旧根新增标题怎么办?
- 进阶回答:先更新迁移清单的计数和分类,再决定是否扩展训练册;不能默默把新标题塞进既有数量结论。
| 旧根标题组 | 标题明细 | 数量 | 模板数量 | 本册训练去向 |
|---|---|---|---|---|
| 通用骨架 | 1 通用三分钟、2 技术选型、3 分布式事务、4 高可用 | 4 | 4 | 三分钟主干与五分钟权衡 |
| 项目方案 | 5 项目方案、5.1 库存、5.2 支付、5.3 履约、5.4 告警 | 5 | 4 | 项目套用和事实分级 |
| 稳定性容量 | 6 分组、6.1 并发、6.2 分位响应、6.3 规格、6.4 容器资源、6.5 处理器打满、6.6 三类中间件扩容 | 7 | 6 | 五分钟数据演绎与十分钟排障 |
| 业务指标 | 7 分组、7.1 日月活、7.2 浏览与访客、7.3 埋点、7.4 指标反推架构 | 5 | 4 | 十分钟业务验收 |
| 面试收尾 | 8 反问模板、9 训练要求 | 2 | 0 | 四条反问与训练门禁 |
| 总计 | 九个二级标题、十五个三级标题 | 24 | 18 | 全量映射,无标题遗失 |
flowchart LR
A[旧根九个二级标题] --> B[十五个三级标题]
A --> C[十八套代码块模板]
B --> D[项目与专题入口]
C --> E[三五十分钟训练]
D --> E
A --> F[四条反问]
F --> E图解读:标题、模板与反问是三个不同计数口径。二十四个标题保证目录完整,十八套代码块保证口述骨架完整,四条反问保证岗位约束和组织环境能够被继续探测。
数据演绎 1:迁移完整度核算
E2(材料映射):旧根共有 9+15=24 个标题;代码块为 4+4+6+4=18 套;反问为 4 条。建立清单后逐项标记训练去向,已映射标题 24 个、模板 18 套、反问 4 条,因此三类完整度均为百分之百。这个比例只证明材料迁移完整,不证明任何生产事实已经核验。
2. 事实等级与表达权限
2.1 E1、E2、E3、E0 的证据边界
热门面试题
- 问题:四级事实体系分别允许怎么说?
- 考点:证据强度、措辞权限和可信表达。
- 回答思路:从可定位证据到待核对信息依次说明。
- 详细答案:E1(直接证据)可定位到本人参与的代码、文档、发布、监控或事故记录,可以说“我负责并完成”;E2(材料映射)来自简历或现有项目材料,可以说“材料显示、我参与的范围是”;E3(演练设计)是为面试构造的方案和数据,只能说“如果设计,我会”;E0(待核对)缺少证据,只能说明未知和取证路径。
- 进阶追问:口述顺畅时还要说等级代号吗?
- 进阶回答:现场不必机械报代号,但必须使用与等级匹配的动词;训练稿保留代号用于自检。
- 问题:为什么旧模板默认只能算 E2(材料映射)或 E3(演练设计)?
- 考点:模板与事实的逻辑隔离。
- 回答思路:说明“可复述”不等于“可证明”。
- 详细答案:模板只给出合理的架构表达,并没有自动附带候选人的代码、发布和线上结果。若模板内容能在简历或项目材料中找到对应关系,可暂列 E2(材料映射);若只是通用设计推导,则是 E3(演练设计)。只有补齐直接证据,具体动作才可升级为 E1(直接证据)。
- 进阶追问:合理的行业常识可以直接当项目事实吗?
- 进阶回答:不能;行业常识用于解释机制,项目事实仍需证明“当时确实这样做”。
- 问题:数字最容易在哪些地方越界?
- 考点:容量、收益、事故结果和归因边界。
- 回答思路:区分原始观测、推导结果与假设数字。
- 详细答案:吞吐、响应分位、错误率、机器规格、告警压缩率和资金差异最容易被模板化数字污染。原始看板或压测报告可作 E1(直接证据),从业务量公式推导的容量属于 E3(演练设计),只有简历摘要而无原始材料时属于 E2(材料映射);来源不清就是 E0(待核对)。
- 进阶追问:记得大概范围但记不清精确值怎么办?
- 进阶回答:说量级和统计口径,明确精确值待核对,不把记忆近似包装成精确结论。
| 等级 | 证据来源 | 允许表达 | 禁止表达 | 升级路径 |
|---|---|---|---|---|
| E1(直接证据) | 本人可定位的代码、需求、评审、发布、监控、事故记录 | “我负责”“我实施”“观测到” | 超出个人职责归因全部成果 | 补齐证据链和结果口径 |
| E2(材料映射) | 简历、项目说明、知识库既有材料 | “材料显示”“我参与的范围是” | 冒充可直接核验的个人动作 | 回查仓库、文档和记录 |
| E3(演练设计) | 假设场景、公式推导、面试方案 | “如果由我设计”“演练假设为” | 说成线上真实架构和收益 | 经实施与观测后重新定级 |
| E0(待核对) | 记忆不确定、来源冲突、缺少原始记录 | “这点我不确定”“需要核对” | 猜数字、猜组件、猜事故原因 | 给出负责人、系统和时间范围 |
stateDiagram-v2
[*] --> E0: 信息进入
E0 --> E2: 找到简历或材料映射
E0 --> E3: 仅能形成演练方案
E2 --> E1: 找到本人直接证据
E3 --> E1: 实施并保留观测证据
E1 --> E0: 来源冲突或口径失效图解读:事实等级可以升级,也可以因口径冲突而降级。升级依赖新证据,不依赖说得更熟;E3(演练设计)与 E2(材料映射)不是高低关系,而是“方案推导”和“既有材料”两条不同来源。
数据演绎 2:一次三分钟稿的事实配比
E3(演练设计):某稿共有 12 个事实句,核对后 E1(直接证据)5 句、E2(材料映射)3 句、E3(演练设计)2 句、E0(待核对)2 句。可直接用于个人经历陈述的比例为 5/12≈41.7%;两句 E0(待核对)必须删除或改成核对路径,两句 E3(演练设计)必须改用假设语气。训练目标不是让 E1(直接证据)虚假达到百分之百,而是让每句话权限与证据一致。
3. 三分钟口述路线
3.1 在一百八十秒内保住结论、约束、方案、风险和收束
热门面试题
- 问题:三分钟版本必须包含哪五段?
- 考点:时间盒、信息优先级和闭环表达。
- 回答思路:按结论、约束、方案、风险、收束给出固定顺序。
- 详细答案:先用一句话给业务目标和架构结论;再讲规模、一致性、可用性、成本或团队约束;第三段只展开一条核心数据流和关键选择;第四段讲最危险失败场景与兜底;最后用观测、结果、事实等级和可追问入口收束。三分钟不追求覆盖全部组件。
- 进阶追问:背景复杂时怎样压缩?
- 进阶回答:只保留能改变设计决策的背景,其余放到追问;背景不应挤掉失败和恢复。
- 问题:三分钟里如何表达替代方案?
- 考点:权衡密度与决策依据。
- 回答思路:只说主方案、一个替代方案和淘汰条件。
- 详细答案:用“目标是什么、主方案为何满足、替代方案为何暂不选、达到什么阈值再演进”四句完成。不要罗列所有候选组件;替代方案的价值是证明做过约束权衡,不是展示名词数量。
- 进阶追问:没有真实选型过程还能讲吗?
- 进阶回答:可以作为 E3(演练设计)回答,但不能说成当年团队真实决策。
- 问题:三分钟结束时为什么要主动留追问入口?
- 考点:面试控制、证据深度和非线性交流。
- 回答思路:用可证明的分支邀请面试官深入。
- 详细答案:短口述只能展示判断主线,无法同时证明容量、故障和项目细节。结尾可说“可以继续展开库存并发、支付未知态或容量推导”,让追问进入证据最强的区域。入口必须与已有材料相连,不能用不熟悉的组件诱导追问。
- 进阶追问:面试官没有追问怎么办?
- 进阶回答:停下来等待下一题,不用继续填满沉默;必要时用一句岗位反问确认关注点。
| 时间段 | 建议时长 | 必答内容 | 删除优先级 | 收束句型 |
|---|---|---|---|---|
| 结论 | 20 秒 | 业务目标、核心不变量、方案结论 | 历史沿革 | “核心是守住……” |
| 约束 | 30 秒 | 规模、一致性、可用性、成本 | 无关背景 | “约束决定不能直接……” |
| 方案 | 65 秒 | 主数据流、关键组件职责、一个替代方案 | 逐接口细节 | “因此选择……” |
| 风险 | 40 秒 | 最危险失败、止血、恢复、验收 | 次要异常 | “失败时先……” |
| 收束 | 25 秒 | 观测、结果等级、追问入口 | 技术栈复述 | “可继续展开……” |
flowchart LR
A[二十秒结论] --> B[三十秒约束]
B --> C[六十五秒方案]
C --> D[四十秒风险]
D --> E[二十五秒收束]
E --> F{一百八十秒内完成}
F -->|超时| G[删背景与组件枚举]
G --> C图解读:三分钟不是把长稿前半段截出来,而是一个完整最小闭环。超时时优先删除背景和组件枚举,不能删除业务结论、失败边界与诚实收束。
数据演绎 3:三分钟字符预算
E3(演练设计):按每分钟 210 个有效字符估算,三分钟预算约 210×3=630 字。若初稿 920 字,需要压缩 920-630=290 字,压缩率约 31.5%。可把三段重复背景各删 50 字、组件清单删 80 字、重复结果删 60 字,共 290 字;保留约束、失败和恢复后,信息闭环仍完整。
4. 五分钟口述路线
4.1 在三百秒内增加权衡、演绎、观测和回滚
热门面试题
- 问题:五分钟版本比三分钟版本多讲什么?
- 考点:增量信息和架构判断。
- 回答思路:增加替代方案、数据演绎、观测信号和回滚条件。
- 详细答案:五分钟不是重复更多背景,而是在同一事实主线上增加一组方案对比、一组可复算数据、一条失败检测链和一个演进阈值。这样能证明候选人不仅会描述现状,还能解释为什么成立、何时失效、怎样撤销。
- 进阶追问:是否要增加第二个项目?
- 进阶回答:通常仍以一个项目为主;只有第二项目能证明方法迁移且不破坏时间盒时,才用二十到三十秒补充。
- 问题:数据演绎如何避免伪装生产数字?
- 考点:假设、公式、观测和结论边界。
- 回答思路:先报 E3(演练设计),再给输入、公式、结果和敏感项。
- 详细答案:明确“下面是容量演练”,列出日量、峰值占比、集中时长和冗余系数,展示计算过程,最后指出真实上线前必须用压测和线上监控校准。公式可复算,假设可替换,结论就不会冒充生产事实。
- 进阶追问:面试官要求真实数字怎么办?
- 进阶回答:只给能确认的量级和口径;精确值缺失时说明待核对,转而讲取证位置。
- 问题:五分钟怎样讲回滚而不陷入操作细节?
- 考点:可逆性、触发阈值和业务验收。
- 回答思路:讲开关、兼容、触发信号和回滚后核对。
- 详细答案:说明新旧路径是否双读或灰度、何种错误率或业务差异触发停止、如何切回旧路径、存量数据怎样处理,以及回滚后用什么业务守恒验收。命令和逐步操作留到追问,主线只保留决策门禁。
- 进阶追问:不可逆数据变更怎么办?
- 进阶回答:上线前采用兼容字段、影子写入、双向校验和分阶段迁移,把不可逆步骤推迟到证据充分之后。
| 五分钟增量 | 必须回答 | 证据要求 | 常见误区 | 推荐追问入口 |
|---|---|---|---|---|
| 方案权衡 | 为什么选、为什么暂不选 | 约束或试验 | 只说优点 | 选型矩阵 |
| 数据演绎 | 输入、公式、结果、敏感项 | E3(演练设计)可复算 | 假设冒充线上值 | 容量推导 |
| 观测链 | 业务与技术信号怎样关联 | 指标口径 | 只看处理器和内存 | 长尾与积压 |
| 回滚门禁 | 触发、切回、存量、验收 | 发布或演练方案 | 回滚等于服务重启 | 数据兼容 |
flowchart TD
A[三分钟完整主干] --> B[增加方案对比]
B --> C[增加数据演绎]
C --> D[增加观测证据]
D --> E[增加回滚门禁]
E --> F[五分钟收束]
F --> G{是否有强第二证据}
G -->|有| H[二十秒迁移案例]
G -->|无| I[保留追问入口]图解读:五分钟的新增内容围绕“为什么、凭什么、失败怎么办”展开。第二项目不是必选项,证据不强时宁可把时间留给主项目的权衡和恢复。
数据演绎 4:容量结论的可复算表达
E3(演练设计):假设日订单 120 万,峰值两小时承载 35%,入口平均每单产生 4 次请求,则峰值请求率约为 1200000×35%×4÷7200≈233 次每秒。乘 2 倍突增和 1.5 倍冗余,目标约 233×2×1.5≈699 次每秒。若单实例稳定承载 160 次每秒,则至少 699÷160≈4.37,向上取 5 个实例;真实配置仍需压测校准。
5. 十分钟口述路线与诚实收束
5.1 深挖项目证据、排障恢复、演进边界和四条反问
热门面试题
- 问题:十分钟版本怎样避免变成流水账?
- 考点:深度结构、因果链和节奏控制。
- 回答思路:沿一个业务不变量展开两次决策和一次失败恢复。
- 详细答案:用背景与不变量开场,讲约束如何淘汰方案,再走一遍正常数据流;随后选择一个真实或演练故障,按发现、止血、定位、修复、恢复验收、复盘演进展开。最后用业务结果和事实等级收束,而不是按需求、开发、测试、上线时间线逐日复述。
- 进阶追问:十分钟需要讲完所有风险吗?
- 进阶回答:不需要;讲最能证明判断力的一项主风险,其他风险做成可追问清单。
- 问题:不会答时怎样诚实收束?
- 考点:未知边界、局部知识和取证路径。
- 回答思路:先承认未知,再说已知边界、判断框架和核对动作。
- 详细答案:可以回答“这个参数我没有直接配置过,不能给出生产结论;我能确认它影响哪条链路、会先看哪些指标,并会到配置中心、发布记录和监控中核对”。不要用相邻知识拼凑精确答案,也不要只说“不知道”后停止交流。
- 进阶追问:面试官继续逼问具体值怎么办?
- 进阶回答:区分默认值、项目值和建议值;只对确认过的类别负责,其余明确假设。
- 问题:四条反问怎样真正服务架构判断?
- 考点:岗位约束、组织成熟度和双向选择。
- 回答思路:把瓶颈、治理阶段、岗位侧重和年度挑战转成决策输入。
- 详细答案:第一条识别性能、稳定性或交付效率的首要矛盾;第二条判断服务治理与可观测性成熟度;第三条确认方案设计、技术治理和团队协同的权重;第四条发现未来一年业务变化。听完回答后,应说明自己的哪段经验最匹配,而不是问完即止。
- 进阶追问:面试时间只够问一条怎么办?
- 进阶回答:优先问未来一年最大技术挑战,它通常同时暴露业务方向、系统瓶颈和岗位期望。
| 十分钟阶段 | 时长 | 证据焦点 | 失败时收束 | 反问连接 |
|---|---|---|---|---|
| 背景与不变量 | 60 秒 | E1(直接证据)或 E2(材料映射) | 不确定规模就报量级 | 核心瓶颈 |
| 约束与权衡 | 120 秒 | 决策记录或 E3(演练设计) | 区分真实决策与复盘建议 | 岗位侧重 |
| 正常数据流 | 150 秒 | 状态、幂等、权威事实 | 不熟组件只讲职责边界 | 治理阶段 |
| 故障与恢复 | 180 秒 | 监控、日志、流水、验收 | 未亲历则标演练 | 技术挑战 |
| 结果与演进 | 60 秒 | 指标口径、下一阈值 | 数字不明就给取证路径 | 经验匹配 |
| 机动追问 | 30 秒 | 可验证分支 | 停止扩写 | 邀请深入 |
flowchart TD
A[业务不变量] --> B[约束与权衡]
B --> C[正常数据流]
C --> D[故障发现]
D --> E[止血与定位]
E --> F[修复与恢复验收]
F --> G[复盘与演进]
G --> H[四条反问]
D -.未知细节.-> I[承认未知]
I --> J[说明已知边界]
J --> K[给核对路径]
K --> F图解读:十分钟深挖始终围绕业务不变量,故障分支允许在未知处诚实停下,再通过边界和核对路径回到恢复验收。反问不是附录,而是把项目经验连接到新岗位约束。
数据演绎 5:十分钟节奏校验
E3(演练设计):六段预算为 60+120+150+180+60+30=600 秒。第一次录音若背景 110 秒、正常流 220 秒、故障仅 80 秒,总时长仍可能接近十分钟,但证据失衡。将背景压缩 50 秒、正常流压缩 70 秒,把 120 秒补给故障与恢复后,时长不变,判断力证据显著增加。校验信号是故障段是否覆盖发现、止血、定位、恢复和验收。
6. 项目套用与追问树
6.1 库存、支付、履约、调度和告警如何共享骨架而不共享事实
热门面试题
- 问题:五类项目怎样复用同一口述骨架?
- 考点:抽象能力和领域不变量。
- 回答思路:复用背景、约束、数据流、失败、观测、演进六段,替换领域事实。
- 详细答案:库存围绕数量守恒,支付围绕资金可对平,履约围绕唯一业务意图,Runner(执行器)围绕租约代次与唯一提交,IoT(物联网)告警围绕降噪但不漏严重事件。共用的是判断顺序,不共用状态、数字和结果。
- 进阶追问:是否应该做一个万能答案?
- 进阶回答:不应该;万能骨架可训练,万能事实会抹平领域失败成本并导致追问穿帮。
- 问题:项目套用时最先替换什么?
- 考点:不变量、权威事实和失败成本。
- 回答思路:先替换业务目标与裁决事实,再替换组件。
- 详细答案:先回答什么绝不能错、谁是权威事实、失败代价是什么,再决定缓存、数据库、消息和任务如何分工。若先把组件名替换掉,往往只能得到表面相似的答案,无法解释支付未知态与库存并发扣减为何处理不同。
- 进阶追问:同样使用消息时差异在哪里?
- 进阶回答:库存消息可能传播扣减结果,支付消息传播账务事件,履约消息驱动外部状态;幂等身份、顺序要求和补偿责任都不同。
- 问题:追问树如何帮助发现事实漏洞?
- 考点:反事实、失败路径和证据闭环。
- 回答思路:从“为什么、如果失败、如何证明、何时演进”四类追问逐层校验。
- 详细答案:每个方案至少接受四轮检查:为什么不是替代方案;超时、重复、乱序或依赖故障时怎样处理;用哪些业务和技术信号证明恢复;达到什么阈值才升级。某一层只能靠猜测回答,就把该句降为 E0(待核对)或 E3(演练设计)。
- 进阶追问:追问越多越好吗?
- 进阶回答:不是;追问要集中在业务不变量和高失败成本,避免把口述训练变成冷门参数记忆。
| 项目 | 核心不变量 | 权威事实 | 主要失败 | 推荐长答入口 |
|---|---|---|---|---|
| WMS(仓储管理系统)库存 | 可售、冻结、出库与实物可守恒 | 库存版本、流水、仓内过账 | 超卖、重复释放、账实差 | 条件更新、幂等、对账 |
| 支付 | 本金、手续费、退款与渠道可对平 | 支付单、渠道结果、资金流水 | 重复入账、单边账、长期未知 | 验签、查单、补偿、对账 |
| 跨境履约 | 一个业务意图只有一个有效下游结果 | 业务键、面单号、状态版本 | 重单、乱序、取消后复活 | 隔离、状态机、人工裁决 |
| Runner(执行器)调度 | 当前代次只有一个持有者可提交 | 租约、代次、任务结果 | 重复执行、旧持有者迟到 | 心跳、接管、栅栏、恢复 |
| IoT(物联网)告警 | 降噪同时保证严重告警可达 | 事件身份、聚合窗口、处置记录 | 风暴、漏报、状态振荡 | 限流、聚合、抑制、回放 |
flowchart LR
A{选择项目} --> B[定义不变量]
B --> C[定位权威事实]
C --> D[画正常数据流]
D --> E[注入最高成本故障]
E --> F[给止血与恢复]
F --> G[业务验收]
G --> H{追问树}
H --> I[为什么这样选]
H --> J[失败怎么办]
H --> K[如何证明恢复]
H --> L[何时演进]图解读:五类项目共享从不变量到追问树的训练流程,但每个节点的事实必须重新填写。真正可迁移的是判断框架,不是某个项目的状态、指标或成果。
数据演绎 6:同一骨架的差异化核算
E3(演练设计):库存示例中初始可售 100,两个请求各扣 60,条件更新只允许一个成功,最终可售 40;支付示例中 100 笔请求有 2 笔超时未知,查单确认 1 笔成功、1 笔失败,不能把两笔都重试;告警示例中一分钟 10000 条原始事件按设备、类型和窗口聚合为 320 条通知,压缩率为 1-320÷10000=96.8%,但严重事件必须逐条核对可达。三个数字都属于演练,不可互换为生产成果。
7. 综合题库:旧模板映射、事实边界与训练实战
问题:请完整说明旧根二十四个标题、十八套模板和四条反问怎样迁移到新训练路线。
- 考点:迁移账本、计数边界、训练分层和兼容策略。
- 回答思路:先给三个统计口径,再说明三分钟、五分钟、十分钟的映射和旧根保留原则。
- 详细答案:二十四个标题由九个二级标题和十五个三级标题组成;十八套模板按代码块统计;四条反问独立于模板。迁移不复制原文,而是为每个入口补事实等级、时间预算、项目证据和追问树。
- 进阶追问:怎样证明没有把分组标题漏掉?
- 进阶回答:迁移清单同时记录标题层级、模板数量和训练去向,三种口径分别核算。
- 口述答案:我会先把三个统计口径拆开,因为它们回答的不是同一个问题。旧根共有二十四个标题,来源是九个二级标题加十五个三级标题;它们描述目录结构和专题上下文。真正可以直接练习的代码块有十八套,分别是通用、技术选型、分布式事务、高可用四套,库存、支付、跨境履约、IoT(物联网)告警四套项目方案,六套稳定性与容量方案,以及四套业务指标与埋点方案。面试末尾还有四条反问,它们不属于代码块模板,而是用来确认团队瓶颈、治理阶段、岗位侧重和未来挑战。迁移时我不会改写旧根,也不会把旧文复制一遍,而是建立一张迁移账本:每个标题记录原用途、对应模板、训练时长、事实风险和追问入口。三分钟路线吸收通用五段骨架以及项目方案的最小闭环,只保留结论、约束、核心流、最高成本风险和收束;五分钟路线再吸收技术选型、容量评估和资源配置中的替代方案、数据演绎、观测与回滚;十分钟路线进一步展开分布式事务、高可用、故障恢复、业务指标和四条反问。这里最重要的边界是,迁移完整只代表材料没有遗漏,不代表模板已经成为我的生产经历。每次套用前仍要标 E1(直接证据)、E2(材料映射)、E3(演练设计)或 E0(待核对)。最终我用
9+15=24、4+4+6+4=18和四条反问三个独立校验式验收,后续旧根新增内容也必须先更新计数再进入训练。验收时还会随机抽一个标题,要求从旧根定位到训练时长、事实等级和项目入口,防止只有数量正确、实际链接却断裂。 - 追问/直答(4 组):①为什么不修改旧根?保留原始基线和既有复习路径;②分组标题算模板吗?不算,但必须映射上下文;③反问为什么独立?它探测岗位约束,不描述方案;④新增模板怎么办?更新账本、计数和训练入口。
- 详细链接:旧根原文
问题:你如何用 E1、E2、E3、E0 管理架构口述中的事实边界?
- 考点:证据等级、表达权限、数字可信度和升级路径。
- 回答思路:解释四级来源、允许动词、禁止越界和证据升级。
- 详细答案:E1(直接证据)对应本人可定位动作;E2(材料映射)对应简历与既有材料;E3(演练设计)对应假设方案;E0(待核对)对应来源不足或冲突。
- 进阶追问:等级是否代表方案质量高低?
- 进阶回答:不代表,等级描述证据来源和陈述权限,不直接评价技术质量。
- 口述答案:我把事实等级看成口述权限控制,而不是给方案打分。E1(直接证据)是我能定位到本人代码、需求、评审、发布、监控或事故记录的内容,这类内容可以说“我负责”“我实施”“我观测到”,但仍不能把团队全部成果归到个人。E2(材料映射)来自简历、项目说明或知识库已有材料,它能证明项目与能力有关,但直接证据还没有全部回查,所以更稳妥的表达是“材料记录了这个方案”“我参与的范围是”。E3(演练设计)用于容量公式、候选方案、故障注入和未来演进,我会明确说“如果由我设计”或“下面做一个演练假设”,绝不把计算结果说成线上真实吞吐。E0(待核对)表示来源缺失、记忆模糊或材料冲突,这时不删除问题,也不猜答案,而是说明未知、已知边界和取证路径。训练中我会逐句标级,尤其检查吞吐、响应分位、机器规格、收益比例、事故原因和个人职责。比如压测报告里的单实例能力可以是 E1(直接证据),简历写过但未找到报告的量级是 E2(材料映射),按日订单量推导的峰值是 E3(演练设计),只记得“大概很高”就是 E0(待核对)。等级可以升级:找到提交、发布和看板后,E2(材料映射)可能升级为 E1(直接证据);演练方案真正实施并留下观测证据后,E3(演练设计)也可升级。若统计口径变化或来源冲突,E1(直接证据)也要暂时降级。这样做的价值是让每个结论都能经受“你怎么证明”的追问,并让复盘有明确补证顺序。
- 追问/直答(4 组):①现场要报等级代号吗?不必,但动词必须匹配;②行业常识是什么等级?机制知识不等于项目事实;③记得范围怎么办?报量级和口径;④团队成果如何说?分开团队目标、个人动作和共同结果。
- 详细链接:架构追问题库
问题:请用三分钟模板口述 WMS(仓储管理系统)库存防超卖方案,并守住事实边界。
- 考点:数量不变量、并发裁决、幂等、补偿和时间盒。
- 回答思路:按结论、约束、方案、风险、收束五段组织,演练数字明确标级。
- 详细答案:先定义可售、冻结、已扣与实物守恒,再说明缓存只承担性能,数据库条件更新承担正确性,异常由状态机、流水和对账闭环。
- 进阶追问:有分布式锁为什么还要数据库条件更新?
- 进阶回答:锁可能超时、失效或覆盖不完整,数据库条件更新才是最终并发裁决底线。
- 口述答案:如果用三分钟讲 WMS(仓储管理系统)库存防超卖,我先给结论:核心不是选一把锁,而是让可售、冻结、已扣和实物数量在并发、超时与补偿后仍能守恒。约束上,出库波峰会形成热点库存,用户请求可能重复,支付与仓内过账又存在异步延迟,所以既要保护入口性能,也要保留数据库侧的最终裁决。主流程中,请求先携带稳定业务幂等键,热点场景可以用 Redis(远程字典服务)做预检查或削峰,但它不作为最终库存事实;落库时由 MySQL(关系型数据库)执行带库存下限和版本条件的更新,成功后写冻结或扣减流水,再通过 MQ(消息队列)传播结果。订单取消或支付超时不能直接把数量加回去,而要检查当前状态、原扣减流水和补偿幂等键,避免重复释放。最高成本风险有三类:两个并发请求同时看到旧值、消息重复导致重复扣减、超时未知导致先扣后误补。止血时可限制热点商品流量、暂停自动补偿并保护数据库;定位时核对请求幂等键、库存版本、流水和消息消费记录;恢复后不能只看接口成功率,而要复算“可售加有效冻结是否等于可支配实物”,再处理历史差异。E3(演练设计)中,初始可售 100,两个请求各扣 60,条件更新只允许一个成功,最终可售 40;这个数字只用于解释机制。若简历和项目材料能证明我参与过相关链路,可先标 E2(材料映射);只有回查到本人代码、评审、上线和监控,具体动作才升级为 E1(直接证据)。最后我会邀请继续追问热点库存、重复补偿或账实对账。
- 追问/直答(4 组):①缓存挂了怎么办?降级到受限数据库路径并限流;②消息重复怎么办?消费幂等加流水唯一约束;③超时就释放吗?不能,先查状态;④恢复如何验收?复算数量守恒并清理差异。
- 详细链接:架构案例库
问题:请用五分钟路线说明一项技术选型,重点展示替代方案和退出条件。
- 考点:约束驱动、候选矩阵、验证实验、回滚和事实分级。
- 回答思路:以订单主数据和搜索读模型为例,区分事实源与查询投影。
- 详细答案:交易数据优先由 MySQL(关系型数据库)承载事务与约束,Elasticsearch(搜索引擎)承载检索投影;说明不反选的原因、同步风险和退出路径。
- 进阶追问:为什么不直接让搜索引擎做主库?
- 进阶回答:搜索能力强不等于适合作为交易事实源,事务约束、状态裁决、审计和恢复边界不同。
- 口述答案:我会用订单主数据与检索场景说明五分钟选型路线。先给结论:订单的权威事实放在 MySQL(关系型数据库),Elasticsearch(搜索引擎)作为搜索读模型,不反向裁决交易状态。这个结论来自约束而不是技术偏好。订单需要本地事务、唯一约束、状态版本、资金和履约审计;查询侧又需要多字段检索、模糊匹配和聚合,两种工作负载难以由一个模型同时做到最优。候选比较时,单用 MySQL(关系型数据库)的优点是事实简单、恢复路径短,缺点是复杂检索和大范围聚合成本高;让 Elasticsearch(搜索引擎)同时承担主事实虽然查询方便,但会把近实时刷新、写入失败和索引重建风险带入交易裁决。因此主方案是交易写入先提交数据库,再通过 MQ(消息队列)或变更日志更新搜索投影,查询结果标识同步时间;关键交易详情仍回源数据库。故障上最危险的是数据库已提交而索引未更新、重复事件覆盖新版本、重建期间查询不完整。处理方式是事件携带订单标识和版本,消费者幂等更新;积压时保护写链路、降低非核心聚合;恢复后比对数据库版本、索引版本和抽样业务结果。E3(演练设计)中,若峰值每秒 700 次请求、检索占 80%,分离读模型可以把检索压力从交易库移出,但真实收益必须由验证实验和线上观测确认,不能直接写成生产结论。上线采用灰度双读和差异采样,错误率、延迟或结果差异超过门禁就切回数据库查询;索引字段保持向前兼容,重建完成前不删除旧索引。退出条件也要明确:若数据规模小、检索简单或团队无法运维双系统,就暂不引入搜索读模型;若检索量和功能达到阈值,再逐步演进。
- 追问/直答(4 组):①索引延迟能接受吗?按业务场景定义时限;②怎样防旧消息覆盖新值?比较版本;③重建如何不中断?新旧索引并行并原子切换;④何时不用搜索引擎?查询简单且规模可控时。
- 详细链接:技术选型与解决方案
问题:请用十分钟主线讲支付资金一致性,怎样处理外部结果未知?
- 考点:资金不变量、验签幂等、未知态、对账补偿和恢复验收。
- 回答思路:围绕资金可对平,从正常流转进入超时未知和单边账恢复。
- 详细答案:支付不能把超时直接判失败;应以稳定请求号、渠道查询、状态机、不可变流水和对账批次闭环。
- 进阶追问:为什么重试不能解决全部超时?
- 进阶回答:首次请求可能已在渠道成功,盲目重试会造成重复支付或重复入账。
- 口述答案:支付方案我会先定义资金不变量:订单应付、本金、手续费、退款、渠道结果和本地账本必须可复算、可对平,接口返回成功只是观测信号,不等于资金闭环。正常流程中,每次支付使用稳定商户请求号,服务在本地事务里创建支付单和初始状态,再调用外部渠道。同步返回、Webhook(回调通知)和主动查单都只是同一支付意图的不同证据,必须经过验签、防重放、渠道事件标识和状态机裁决后才能更新结果;下游通知通过 MQ(消息队列)最终一致,资金流水尽量不可变,纠错使用反向分录而不是覆盖历史。核心故障是调用超时:此时不能直接标失败,也不能立即换新请求号重试,因为渠道可能已经扣款。系统应进入未知态,按原请求号主动查单;查询仍无结果时按退避策略重试并设置未知年龄门禁,超过时限进入人工或对账队列。若本地成功、渠道失败,或渠道成功、本地未记账,就形成单边账,需要以渠道账单、支付单、资金流水和对账批次进行差异分类,再用幂等补偿修正。止血时保护支付入口、暂停有风险的自动补偿并隔离异常通道;定位要串联请求号、渠道流水、回调记录、状态版本和账务分录;恢复不能只看服务存活,而要确认新增未知量下降、历史未知被清理、差异金额归零或进入有责任人的人工队列。E3(演练设计)中,100 笔各 100 元交易,90 笔成功、5 笔退款,则净额应为 8500 元;若渠道为 8600 元,就必须定位 100 元差异,不能用总体成功率掩盖。个人职责和真实金额只有在发布、监控或对账记录可定位时才标 E1(直接证据)。最后我会说明演进条件,例如未知年龄和对账差异持续超过门禁时,优先补证据链与补偿隔离,而不是先增加重试次数。
- 追问/直答(4 组):①回调重复怎么办?事件标识加状态机幂等;②回调乱序怎么办?按状态版本裁决;③查单仍未知怎么办?退避、时限、人工队列;④恢复看什么?未知年龄、差异金额和账本守恒。
- 详细链接:项目组合与追问树
问题:遇到确实不会的架构追问,你怎样诚实收束而不是失去交流?
- 考点:未知边界、推理权限、取证路径和沟通稳定性。
- 回答思路:承认未知,给已知边界、风险判断、核对动作和后续验证。
- 详细答案:不猜项目值,不用相邻知识拼接结论;将默认值、建议值和生产值分开。
- 进阶追问:面试官认为这是基础知识怎么办?
- 进阶回答:若机制确实掌握就补机制,仍不确定的项目细节继续保持边界,不因压力编造。
- 口述答案:我不会把“不会”处理成一句话结束,也不会为了显得熟悉而猜精确参数。我的收束顺序有四步。第一步直接说明未知范围,例如“这个组件的生产参数不是我配置的,我不能确认项目值”,先把事实权限说清楚。第二步给出我能确认的机制边界:它位于哪条数据流,影响吞吐、延迟、一致性还是恢复,错误配置可能造成什么失败。第三步给出现场判断框架,例如先看业务错误率和长尾响应,再看线程池、连接池、数据库等待或消息积压,通过链路证据缩小范围。第四步说明核对动作:到配置中心、发布记录、监控看板、变更评审和负责人处确认,并用测试环境或灰度验证,而不是直接修改生产。假设面试官问某个容器内存值,我会区分三类答案:产品默认值属于通用知识,团队建议值属于设计经验,项目生产值必须有配置证据;三者不能混说。若我只参与了故障定位,没有负责最终配置,我会说清个人动作和团队结果。若问题要求一个方案,我可以继续给 E3(演练设计):明确假设、候选方案、风险和验证方法;若问题要求复盘真实事故,则只能使用 E1(直接证据)或谨慎的 E2(材料映射)。诚实收束不是回避,它仍要展示如何保护系统:在信息不足时先避免扩大故障,保留现场,选择可逆动作,建立观测,再由证据推进。最后我会确认面试官更想听机制推导还是项目经历,从而在合法边界内继续交流。这种回答可能少一个参数,却能证明我知道知识边界、生产风险和取证方法。
- 追问/直答(4 组):①能说“我猜”吗?可说假设,但必须标演练;②完全不懂机制呢?直接承认并说明学习核对路径;③谁负责要说吗?说明职责接口即可;④事后如何补齐?记录问题、查权威资料并做最小验证。
- 详细链接:架构追问题库
问题:请从业务量推导系统容量,并解释为什么容量数字不是一句并发用户数。
- 考点:口径拆分、峰值推导、单实例能力、冗余和校准。
- 回答思路:从业务事件到入口请求率,再到实例数和下游瓶颈。
- 详细答案:并发用户含义模糊,应同时说明每秒请求、每秒事务、响应分位、错误率和队列积压。
- 进阶追问:计算出五个实例就一定够吗?
- 进阶回答:不一定,公式只给初值,还需压测、故障冗余、发布容量和下游约束校准。
- 口述答案:容量问题我不会只回答“支持多少并发用户”,因为用户在线不等于同时发请求,而且读写比例、内部放大和响应时间都会改变资源占用。我先定义业务口径:日订单量、峰值集中时段、峰值占比、活动突增倍率,以及一笔订单触发多少入口请求和内部调用。E3(演练设计)中,假设日订单 120 万,35% 集中在两小时,每单平均产生 4 次入口请求,则峰值平均请求率为
1200000×35%×4÷7200≈233次每秒;考虑 2 倍突增和 1.5 倍冗余,目标约 699 次每秒。压测若证明单实例在目标响应分位和错误率下稳定承载 160 次每秒,理论数量为 4.37,向上取 5 个。但我不会到这里停止。五个实例还要覆盖滚动发布、单实例故障和流量倾斜,并检查线程池、连接池、处理器、内存、垃圾回收、数据库锁等待、Redis(远程字典服务)热点和 MQ(消息队列)消费能力。若入口每秒 700 次请求会放大成数据库每秒 2100 次查询,真正瓶颈可能在数据库而不是应用实例。上线前通过分层压测找拐点:逐步升压,记录 P95(95 分位响应时间)、P99(99 分位响应时间)、错误率和队列长度,当吞吐不再增长而延迟陡升时,前一个稳定档位才是单实例能力。线上再用业务峰值和资源水位回校模型。真实数字必须来自压测报告和看板,公式数字始终标 E3(演练设计)。最终回答容量时,我会同时给统计窗口、业务假设、目标服务水平、单实例依据、冗余策略和最先失效的下游,这样数字才可复算、可验证、可演进。 - 追问/直答(4 组):①为何乘冗余?覆盖突发、故障和发布;②平均响应够吗?不够,要看长尾;③何时扩容?在拐点前按预测和水位触发;④扩应用为何可能更坏?会把更多压力推向下游。
- 详细链接:稳定性与容量评估
问题:高可用方案为什么不能只回答多副本?
- 考点:失败域、入口保护、隔离降级、数据恢复和业务验收。
- 回答思路:从依赖图识别故障传播,再讲防护、恢复和演练。
- 详细答案:副本只覆盖部分实例故障,不能自动解决流量风暴、共享依赖、数据错误和错误发布。
- 进阶追问:有自动扩容是否就不需要限流?
- 进阶回答:仍需要,扩容有延迟且共享下游容量有限,限流保护不变量和恢复通道。
- 口述答案:多副本只是高可用的一项手段,它主要覆盖单实例退出,无法解决共享数据库饱和、缓存热点、消息积压、第三方超时、错误发布或错误数据复制。我的设计顺序是先定义业务优先级和失败域,再决定防护层次。入口层按租户、业务和接口限流,避免非核心流量抢占支付、库存等关键链路;服务层设置超时预算、熔断、线程池隔离和有界重试,避免慢依赖耗尽工作线程;数据层明确数据库、缓存和消息各自的事实边界,准备只读、降级、补偿和对账;发布层使用灰度、开关和兼容变更,保留快速切回路径。故障发生后先止血:冻结高风险变更,限制流量,关闭非核心任务,必要时切换依赖;随后用业务错误率、P99(99 分位响应时间)、线程池队列、连接池等待、数据库锁、缓存命中和消息积压定位传播链。恢复不能以进程存活结束,还要确认新请求成功、历史积压下降、未知状态清理、资金或数量不变量成立。E3(演练设计)中,三个实例每个稳定承载 200 次每秒,总量不能简单说 600;若要求任一实例故障后仍承载 500 次每秒,则剩余两个实例各需 250,已经超过稳定能力,应增加实例或降低承诺。还要演练共享数据库故障,因为增加应用副本对它无效。真实系统若没有故障演练和恢复证据,只能把这套方案标为演练,不能说“系统达到高可用”。最终我会给出可降级功能、不可降级链路、触发阈值、恢复负责人和业务验收标准,高可用才从部署形态变成完整运行能力。
- 追问/直答(4 组):①重试越多越可靠吗?不是,会放大故障;②降级是否丢业务?关键意图可落队列后补偿;③缓存多副本够吗?还要处理一致性和热点;④怎样验收恢复?看新流量、存量和业务守恒。
- 详细链接:架构师思维与设计
问题:跨服务业务如何选择本地事务、可靠消息、补偿或 TCC(Try Confirm Cancel,尝试确认取消)?
- 考点:一致性等级、外部可控性、失败成本和复杂度权衡。
- 回答思路:先判断是否能收拢本地事务,再按业务容忍度选择最终一致或强协调。
- 详细答案:不默认使用分布式事务;外部支付等不可控系统最终仍需查单、对账和人工裁决。
- 进阶追问:最终一致是否意味着可以无限等待?
- 进阶回答:不是,必须定义收敛时限、未知年龄、补偿门禁和责任人。
- 口述答案:我先判断业务动作能否收拢到一个服务和一个数据库事务中,因为本地事务的失败语义、性能和运维成本最清楚。若必须跨服务,再看业务是否允许短暂中间态、参与方是否可控、补偿是否可逆以及失败金额或数量的成本。允许最终一致时,我优先使用本地事务保存业务事实和待发送事件,再由 MQ(消息队列)可靠投递;消费者以稳定业务键幂等处理,状态机限制合法迁移,失败进入重试、死信或人工队列,定时对账处理漏单。若动作可逆,可以设计补偿,但补偿不是简单反向调用,它必须识别原动作是否成功、是否已补偿以及外部状态是否改变。只有在强一致收益明确、所有参与方都能提供预留、确认和取消语义时,才考虑 TCC(Try Confirm Cancel,尝试确认取消)一类强协调方案,同时接受资源悬挂、空回滚、防悬挂和运维复杂度。外部支付或物流渠道不受内部事务框架控制,因此即使同步调用成功,也仍要面对超时未知、回调乱序和渠道账单差异,最终靠原请求号查单、状态裁决、对账和人工兜底。E3(演练设计)中,订单创建后库存冻结成功,但消息发送暂时失败,事务内事件表保存同一业务键,后台重新投递;消费者重复收到三次,只产生一次有效冻结。如果没有事件表或代理事务消息的真实证据,这只能作为方案建议。选择时我会把一致性目标、允许窗口、失败成本、参与方能力和团队运维能力写成矩阵,并给停止条件:当补偿长期堆积、未知年龄超标或人工成本不可接受时,重新划分边界或提高同步裁决强度,而不是无限增加重试。
- 追问/直答(4 组):①为什么先本地事务?边界清楚、成本最低;②补偿一定成功吗?不一定,需要幂等、重试和人工;③强协调缺点?锁定资源且失败处理复杂;④外部渠道怎么办?查单、对账、补偿和裁决。
- 详细链接:技术选型与解决方案
问题:请把 IoT(物联网)告警风暴治理套入三、五、十分钟训练路线。
- 考点:反馈控制、分层降噪、严重事件可达、容量演绎和表达伸缩。
- 回答思路:三分钟讲闭环,五分钟加演绎与替代,十分钟加事故恢复和业务验收。
- 详细答案:治理目标不是丢弃告警,而是在保护系统的同时保留严重事件、原始证据和回放能力。
- 进阶追问:聚合会不会掩盖真正故障?
- 进阶回答:严重级别穿透,聚合记录保留计数、首末时间和原始事件引用,并支持回放。
- 口述答案:三分钟版本我会先给结论:IoT(物联网)告警风暴治理不是简单丢消息,而是用分层反馈控制降低重复噪声,同时保证严重事件可达、原始证据可追溯。约束包括设备可能同时抖动、同源事件重复、通知通道容量有限以及值班人员注意力有限。主流程是接入层按租户和设备限流,MQ(消息队列)缓冲突发,处理层按设备、告警类型和时间窗口聚合,Redis(远程字典服务)保存短期计数与去重状态,数据库保存最终告警和处置记录;严重事件绕过普通抑制策略。风险是限流误伤、窗口状态丢失、积压恢复后二次风暴,因此要保留原始事件引用、回放开关和恢复节奏。五分钟版本增加 E3(演练设计):一分钟 10000 条事件聚合为 320 条通知,压缩率
96.8%,但必须同时核对严重事件可达率、处理延迟和原始事件保存率;再比较固定窗口、滑动窗口和按拓扑聚合的适用条件,并给降级与回滚门禁。十分钟版本会展开一次风暴:先根据入口速率、消费延迟和通知失败判断传播,立即限制普通级别通知并保护严重队列;再定位设备批次、规则版本和下游通道;修复后按租户分批回放积压,防止恢复流量再次冲击系统;最后用严重事件零遗漏、积压归零、重复通知下降和人工处置时长验收。事实上,模板提供的是 E3(演练设计)骨架;只有简历材料可支持时才标 E2(材料映射),找到本人规则代码、发布记录和监控后才能将具体动作升级为 E1(直接证据)。三个版本共享同一不变量,只改变证据密度,不改变事实版本。 - 追问/直答(4 组):①为什么要消息缓冲?隔离突发与处理能力;②状态丢失怎么办?从持久事实重建并限速回放;③如何防漏严重告警?独立通道和可达审计;④恢复为何限速?避免积压形成第二次风暴。
- 详细链接:架构案例库
- 问题:跨境物流履约链路长、外部接口不稳定,口述时如何建立主线?
- 考点:唯一业务意图、外部依赖隔离、状态裁决、补偿和人工边界。
- 回答思路:以订单、面单、轨迹的因果关系为主线,避免逐个接口罗列。
- 详细答案:稳定业务键和状态版本守住唯一意图,外部调用异步隔离,未知结果先查证,乱序事件按状态机裁决。
- 进阶追问:第三方没有幂等接口怎么办?
- 进阶回答:内部固定请求号、调用前后留证、超时主动查询,必要时停止自动重试并人工裁决。
- 口述答案:跨境物流口述最容易变成接口清单,所以我会先定义不变量:一次下单或面单申请只有一个有效下游结果,订单、面单、轨迹、取消和结算之间的因果可追踪。约束是外部渠道多、响应慢、错误语义不统一,部分调用超时后结果未知,轨迹还可能重复和乱序。主链路应尽量短:本地先以稳定业务键保存履约意图和当前状态,外部面单拉取、轨迹同步等慢操作放入隔离线程池或 MQ(消息队列);每次调用记录渠道、请求号、尝试代次和时间。外部返回后不直接覆盖状态,而是经过状态机和版本判断;重复轨迹按渠道事件标识或业务组合键幂等,晚到事件若不能推动合法迁移就留作审计。最高成本故障是调用超时但渠道已经创建面单。如果直接换新请求号重试,可能产生重复面单和重复费用,因此先按原请求号或业务键查单,仍未知时进入有时限的重试和人工队列。止血时隔离异常渠道、限制新任务、保护已支付订单;定位时串联本地订单、调用日志、渠道单号、消息记录和状态版本;恢复时分批重放积压,检查是否出现重复结果、取消后复活和长期未知。五分钟版本可增加渠道候选矩阵,比较价格、时效、接口稳定性和退出成本;十分钟版本再展开一次渠道故障和切换演练。E3(演练设计)中,1000 个任务有 20 个超时,其中查单确认 12 个成功、6 个失败、2 个仍未知,系统只对确认失败的 6 个重试,不能把 20 个全部重放。真实项目若只能从材料确认参与范围,就标 E2(材料映射);只有调用、状态机、上线和结果证据可定位,才描述为 E1(直接证据)。
- 追问/直答(4 组):①轨迹乱序怎么办?状态版本与合法迁移裁决;②渠道切换如何避免重单?固定业务意图并先查原渠道;③死信如何处理?分类、限速重放、人工兜底;④恢复验收?重复单、未知年龄和积压同时收敛。
- 详细链接:项目组合与追问树
- 问题:Runner(执行器)调度如何处理租约过期、接管和旧执行者迟到提交?
- 考点:租约代次、心跳、栅栏、幂等提交和恢复判定。
- 回答思路:先定义唯一有效执行权,再走领取、续租、接管和提交链路。
- 详细答案:租约解决暂时所有权,代次栅栏阻止旧执行者在接管后写入;业务结果仍需幂等。
- 进阶追问:有心跳为什么还会重复执行?
- 进阶回答:暂停、网络分区或调度延迟会使心跳超时,而旧执行者可能仍在运行,因此必须防迟到提交。
- 口述答案:Runner(执行器)调度的核心不变量是:同一任务代次只有当前有效持有者可以提交结果,旧持有者即使恢复也不能覆盖新结果。任务领取时,调度端以条件更新写入持有者、租约到期时间和递增代次;执行端周期心跳续租,但续租必须同时匹配任务标识、持有者和代次。若心跳超过阈值,调度端不会立刻假设任务失败,而是将其标为可接管,由新执行者领取并获得更高代次。真正关键的是结果提交:写入必须携带代次作为栅栏,数据库只接受当前代次,旧执行者在网络恢复后迟到提交会被拒绝。即使有栅栏,外部副作用仍需稳定业务键幂等,因为旧执行者可能在失去租约前已调用下游。故障时先看租约过期量、心跳延迟、待领取队列和重复副作用;止血可暂停新领取、隔离异常执行池并保护提交接口;定位时串联任务状态、代次、持有者、心跳和下游业务键;恢复后确认在途任务重新归属、旧代次提交被拒绝、积压下降且业务结果无重复。E3(演练设计)中,任务代次 7 由执行者甲持有,甲暂停导致租约过期,乙接管后代次变为 8;甲恢复时携带代次 7 提交,条件更新影响行数为零,乙的代次 8 结果才可生效。这个演绎证明机制,不代表真实参数。租约时长应根据任务耗时分布、心跳抖动和接管成本压测,不应背固定值。若我只参与任务业务逻辑,就不能声称设计了调度协议;能定位协议代码、评审和故障记录后,才把具体职责标为 E1(直接证据)。恢复演练还要覆盖调度端重启,确认租约事实能够从持久记录重建。
- 追问/直答(4 组):①租约越短越好吗?不是,误接管会增加;②栅栏放哪里?最终写入裁决点;③外部副作用怎么办?业务键幂等与查证;④恢复看什么?归属、旧提交拒绝、积压和重复结果。
- 详细链接:架构案例库
- 问题:业务指标和技术指标怎样共同证明架构方案有效?
- 考点:指标口径、事件模型、因果校验、对账和反向决策。
- 回答思路:先定义业务事实,再连接响应、错误、积压和链路信号。
- 详细答案:页面事件可解释行为,但支付、库存等关键指标必须以后端事实和对账结果为准。
- 进阶追问:指标上涨为什么不一定是好事?
- 进阶回答:可能来自重复埋点、异常刷新、爬虫、口径变化或失败重试,需要交叉核验。
- 口述答案:架构效果不能只用处理器水位或平均响应证明,我会从业务结果和技术过程两层建立指标。业务层先定义权威事实和统计口径,例如支付成功应以渠道与本地账本可对平为准,库存正确应以可售、冻结和实物守恒为准,履约及时应明确从哪个状态到哪个状态以及统计窗口。技术层再记录 QPS(每秒查询率)、P95(95 分位响应时间)、P99(99 分位响应时间)、错误率、线程池队列、数据库等待、缓存命中和 MQ(消息队列)积压。二者通过 TraceId(链路标识)、订单号或任务号关联,才能回答“技术异常是否影响业务”。埋点采用事件模型,事件名称、发生时间、用户或设备、会话、链路标识、业务属性和结果都要版本化;前端适合曝光与点击,订单、支付、库存和资金必须以后端事实为准。数据突变时先查口径、版本、重复和丢失,再与订单表、流水、消息和对账批次交叉校验,不能马上归因于架构优化。E3(演练设计)中,改造前支付转化率 92%,改造后 94%,若同期渠道、流量来源和口径发生变化,就不能把两个百分点都归因于技术方案;可通过分组、灰度和相同口径比较,并同时观察未知支付年龄和长尾响应。若 P99(99 分位响应时间)下降但支付差异金额上升,方案仍不合格。十分钟口述中我会给出目标指标、保护指标和反向指标:目标说明业务价值,保护指标防止用稳定性换正确性,反向指标用于发现副作用。真实收益必须有原始看板、时间窗口和变更记录才标 E1(直接证据),只有简历结论则按 E2(材料映射)表达。
- 追问/直答(4 组):①平均值够吗?不够,要看分布和长尾;②前端支付成功可用吗?不能作为资金事实;③如何防重复埋点?事件标识、版本和去重;④怎样证明因果?灰度、同口径对照和变更时间关联。
- 详细链接:业务数据指标与埋点
- 问题:面试结束的四条反问如何帮助你判断岗位,而不是例行提问?
- 考点:岗位约束、组织成熟度、责任边界和经验映射。
- 回答思路:逐条解释要获取的信息,并在回答后连接自身证据。
- 详细答案:四条反问分别探测首要瓶颈、治理阶段、岗位侧重和年度挑战;听完要做二次确认。
- 进阶追问:只能问一条时选哪条?
- 进阶回答:优先问未来一年最大技术挑战,它通常同时暴露业务方向、风险和岗位期望。
- 口述答案:我不会把四条反问当作固定台词,而是把它们当成岗位约束采集。第一条问团队当前最核心的瓶颈是性能、稳定性还是交付效率,目的是判断主要矛盾和成功标准;如果对方回答稳定性,我会继续确认是容量、依赖故障、数据正确性还是发布风险。第二条问服务治理和可观测性建设阶段,用来了解指标、日志、链路、告警、演练和变更治理的成熟度,也判断岗位是从零建设还是优化现有平台。第三条问岗位更看重方案设计、技术治理还是团队协同,目的是厘清日常产出、决策权限和个人责任,避免职位名称相同但实际工作完全不同。第四条问未来一年最大的技术挑战,它能把业务增长、组织变化、系统演进和预算限制放到同一张图里。关键动作发生在听完之后:我会用一句话复述理解,再选择自己的 E1(直接证据)或 E2(材料映射)经验连接。例如对方说库存正确性和跨团队履约是重点,我会说明自己可以从数量守恒、状态机、幂等和恢复证据展开;若对方需要平台治理,而我只有项目内经验,我会诚实说明边界和可迁移方法。反问也用于识别风险:只强调高吞吐却无法说明业务指标,可能目标不清;要求架构师承担结果却没有决策权限,需要继续确认;治理从零开始则要问资源和阶段目标。若时间只够一条,我会问未来一年最大技术挑战,并追问这个岗位入职三到六个月最希望解决什么。这样反问既帮助双向选择,也让口述从“我做过什么”收束到“我能否解决这里的问题”。
- 追问/直答(4 组):①能问技术栈吗?可以,但应连接业务阶段;②对方回答模糊怎么办?给两个具体选项确认;③能问事故吗?可问复盘机制,不要求敏感细节;④何时不继续追问?时间到或对方已给出边界时。
- 详细链接:旧根反问模板
- 问题:你会怎样制定一周的三、五、十分钟口述训练和证据升级计划?
- 考点:刻意练习、事实审计、时间盒、录音复盘和迁移训练。
- 回答思路:先建事实卡,再做短到长、长到短、跨项目和压力追问四轮训练。
- 详细答案:训练目标不是背稿,而是事实稳定、时间可控、追问可回到证据,E0(待核对)逐步减少。
- 进阶追问:怎样判断已经练熟?
- 进阶回答:随机从任一追问进入,仍能在规定时间回到不变量、证据和收束,不依赖固定句序。
- 口述答案:我会先花一天建立事实卡,而不是直接背答案。每个项目只记录业务不变量、个人职责、权威事实、关键决策、最高成本故障、恢复验收、结果口径和可追问入口,并逐句标 E1(直接证据)、E2(材料映射)、E3(演练设计)或 E0(待核对)。第二天做三分钟训练,使用一百八十秒计时,强制保留结论、约束、主方案、风险和收束;超时只删背景和组件枚举。第三天把同一项目扩成五分钟,增加一个替代方案、一组可复算数据、观测链和回滚门禁,同时检查新增内容是否仍在事实权限内。第四天做十分钟深挖,选择一次真实事故或明确标记的演练,完整讲发现、止血、定位、修复、恢复验收和复盘,再用四条反问中的一条连接目标岗位。第五天反向压缩:先讲十分钟,立即压成五分钟和三分钟,验证缩短后事实版本不变。第六天做跨项目迁移和压力追问,随机从库存、支付、履约、Runner(执行器)或 IoT(物联网)中抽题,并连续追问“为什么不选另一方案、超时怎么办、如何证明恢复、何时演进”;答不上就记录为 E0(待核对),不现场编造。第七天回查代码、文档、发布、监控和事故记录,能定位的内容升级为 E1(直接证据),仍无来源的数字从稿中删除或改为 E3(演练设计)。每天保留录音,统计总时长、背景占比、无效口头语、被打断位置和未知问题数量。通过标准不是逐字一致,而是三种时长均不超时,随机打断后能回到业务不变量,每个数字能说明来源,每个不会的问题能给边界和核对路径。最终形成一个稳定主干和多个可替换证据块,面试时按岗位风险组合,而不是背一篇僵硬长稿。
- 追问/直答(4 组):①每天练多久?两轮录音加一轮复盘即可;②要逐字背吗?不背句子,背结构与证据;③E0(待核对)清不完怎么办?删除非必要项并保留核对路径;④如何模拟打断?随机抽追问后要求三十秒回主线。
- 详细链接:项目组合与追问树
