面试知识

分布式系统与微服务

21-分布式系统与微服务 面试知识整理。

分布式系统与微服务

本文件是长期稳定导航入口,不再承载机制正文。概念、原理、数据演绎、故障边界、项目证据和面试长答案均以 0008 分册为唯一权威来源;本入口只保留学习顺序、边界摘要、项目入口、题库入口和旧正文迁移说明。

1. 简历关联

本模块对应简历中的微服务演进、分布式一致性、服务治理、分布式事务、灰度发布、库存防超卖、支付资金一致性、跨境物流、异步任务、Runner(执行器)调度、WMS(仓储管理系统)和 IoT(物联网)报警风暴治理。

面试官通常会沿三层追问:先问为什么拆或不拆,再问边界、一致性与治理如何落地,最后用超时、重复、乱序、脑裂、灰度污染或外部副作用检验方案是否真正可恢复。根入口不直接回答这些问题,机制答案统一进入对应分册。

2. 面试主线

建议按下面顺序组织回答:

  1. 架构判断:先说明单体、模块化单体和微服务各自适用条件,以及拆分收益能否覆盖组织与运行成本。
  2. 边界判断:再说明服务边界、事务边界、数据所有权、可观测性边界和组织成本是否一致。
  3. 正确性判断:区分副本一致性、事务一致性和业务最终一致,明确分区、超时与未知结果下的取舍。
  4. 韧性判断:说明超时预算、有限重试、幂等、隔离、限流、熔断、降级与恢复放量如何组合。
  5. 副作用判断:支付、物流、通知、文件和设备控制等外部动作必须依靠查证、状态机、补偿、对账和人工出口收敛。
  6. 项目证据:用具体量级、权威数据源、幂等键、状态变化、监控指标和事故复盘证明方案有效。

图一:从架构判断到项目证据的学习导航

flowchart LR
    A["00<br/>路线、迁移与版本边界"] --> B["01<br/>演进、拆分与成本"]
    B --> C["02<br/>领域边界与数据所有权"]
    A --> D["03<br/>一致性、复制与脑裂"]
    D --> E["04<br/>服务治理与韧性"]
    C --> F["05<br/>事务、补偿与消息一致性"]
    D --> F
    E --> G["06<br/>配置、灰度、多租户与安全"]
    B --> H["07<br/>项目案例与事故排障"]
    C --> H
    D --> H
    E --> H
    F --> H
    G --> H
    H --> I["08<br/>综合面试题库"]

3. 00 至 08 分册导航

编号权威分册适合解决的问题
00知识图谱、迁移路线与版本边界从哪里开始学、旧资产迁到哪里、哪些结论依赖具体版本、跨模块正文归谁维护
01单体到微服务演进、拆分原则与成本模型何时不拆、何时迁出、如何量化分布式成本、什么情况下合并回迁
02DDD(领域驱动设计)、限界上下文、聚合与数据所有权如何从业务事实划边界、谁拥有数据、跨域查询与共享库如何治理
03CAP(一致性、可用性、分区容错)、BASE(基本可用、软状态、最终一致)、Quorum(法定人数)、时钟与脑裂分区时如何取舍、复制如何确认、法定人数交集有什么边界、旧主写入如何拒绝
04服务治理、注册发现、负载均衡与韧性超时、重试、幂等、限流、熔断、隔离、恢复放量和观测证据如何组合
05分布式事务、补偿与消息一致性本地事务、协调事务、业务补偿、可靠消息、未知结果和人工兜底如何选
06配置、网关、灰度、兼容、多租户与安全边界配置变更、路由、接口兼容、共享资源污染、租户隔离和信任边界如何治理
07项目案例与事故排障如何把机制转换成项目话术、事故证据链、止血方案和恢复验证
08综合面试题库如何按结论、约束、机制链、失败边界、项目证据和验证闭环完成连续口述

正文维护规则:机制只在上述唯一责任分册中更新;其他位置只给摘要和真实相对链接,不复制长答案,不形成第二份权威结论。

4. 版本边界摘要

具体小版本、默认值、配置键和产品行为必须回到版本边界总表以及对应机制分册核对。本入口只保留下列长期稳定边界:

范围长期稳定结论不在入口固化的内容
分布式理论CAP(一致性、可用性、分区容错)讨论网络分区发生时的一致性与可用性取舍;事务一致性、副本一致性和业务最终一致必须分开不把日常运行简化成无条件“三选二”
框架兼容Spring Cloud(微服务框架)发布列车必须与 Spring Boot(快速开发框架)兼容矩阵一起核对不写未经核对的发布列车、组件组合和默认配置
注册与配置Nacos(服务治理平台)不同大版本和小版本的协议、健康检查、鉴权与升级行为可能不同不把单一版本行为泛化为永久事实
韧性治理Sentinel(流量治理框架)和 Resilience4j(容错库)的窗口、状态与组合顺序依赖实际版本和调用模型不固化未经实测的阈值和默认值
分布式事务Seata(分布式事务框架)的 AT(自动事务模式)、TCC(Try Confirm Cancel,尝试确认取消)、Saga(长事务模式)、XA(扩展架构事务模式)能力边界不同;TX-LCN(事务协调框架)只作存量方案评估不把任一框架宣传成外部副作用的万能强一致方案
可观测性OpenTelemetry(开放遥测标准)的传播、采样和语义约定要按实际版本核对,链路证据不能替代业务审计不把采样数据当作完整业务账本
外部副作用支付、物流、短信、文件和设备控制通常不能参与统一数据库事务不省略幂等、查单、补偿、对账和人工闭环

5. 五类边界

微服务设计必须同时回答五类边界,任何一类说不清,都应回到 0103 重新判断是否值得拆分。

边界核心问题最小证据典型失败
服务边界哪个业务能力需要独立演进、部署、扩容和故障隔离变化频率、容量热点、故障域、团队所有权按表、页面或技术层机械拆分
事务边界哪些不变量必须在一次原子提交内成立状态机、条件约束、失败窗口、补偿责任服务一拆就默认跨服务强事务
数据所有权谁是唯一权威写入方,其他方如何读取和订阅写入入口、事件契约、读模型、审计流水多个服务绕过所有者直接写同一数据
可观测性边界什么证据能证明技术状态和业务状态日志、指标、链路、业务流水、对账结果用采样链路代替完整业务事实
组织成本谁负责开发、发布、值班和平台治理团队拓扑、发布节奏、告警责任、总成本只计算机器和代码,不计算协作与认知负担

图二:从五类边界进入机制、项目和题库

flowchart TD
    A{"先回答哪类问题"}
    A --> B["是否值得拆<br/>服务边界与组织成本"]
    A --> C["如何保证正确<br/>事务边界与数据所有权"]
    A --> D["如何证明与恢复<br/>可观测性边界"]
    B --> E["01 演进成本<br/>02 领域边界"]
    C --> F["03 一致性<br/>05 事务补偿"]
    D --> G["04 服务治理<br/>06 发布安全"]
    E --> H["07 项目与事故"]
    F --> H
    G --> H
    H --> I["08 综合口述"]

6. 项目入口

项目案例统一由 07 维护;这里使用稳定题号直达口述入口,不复制案例长答案。

简历项目线直接入口回答时必须守住的底线
WMS(仓储管理系统)服务演进从模块化单体到微服务的演进用发布冲突、容量热点和故障域证明拆分收益,同时保留回迁条件
库存防超卖高并发库存预占与防超卖数据库条件约束与预占流水是正确性底线,缓存锁不能成为唯一事实
支付资金一致性支付回调、查单与账务入账超时按未知结果处理,以状态机、账务守恒、对账和人工差错闭环收敛
跨境物流轨迹重复、乱序与最终态冲突保留原始事实和规则版本,投影状态不得因迟到事件倒退
异步任务可恢复、可取消的异步导出持久任务意图、分片状态、资源隔离和产物幂等必须可审计
Runner(执行器)调度租约、心跳与 Fencing Token(栅栏令牌)租约负责活性,单调栅栏负责拒绝失租执行者的迟到写
IoT(物联网)报警风暴报警聚合、背压与严重告警保护原始事实可追溯,普通通知可降级,严重告警和租户保底通道不可被挤占

7. 题库入口

训练目标入口使用方式
旧模块题起点旧题 legacy-bank-01从“为什么演进到微服务”开始完整口述
旧模块题终点旧题 legacy-bank-25用业务正确、交付自治、运行韧性、数据边界和总成本评价体系健康度
全量综合题综合面试题库25 道保留旧模块题稳定标识,后续题补充一致性、时钟、安全、多租户和事故决策
项目事故题项目案例与事故排障题库先给项目事实和故障证据,再沿机制链接回到 0106

题库只负责压缩口述和连续追问;遇到定义、协议、数据流或失败窗口追问时,必须沿题内相对链接返回对应机制分册。

8. 图形索引

根入口只保留两张导航图。旧正文中的 11 张图按稳定标识进入下列唯一责任分册;具体图形、图注和失败分支以目标分册为准。

旧图稳定标识图形主题唯一入口
legacy-fig-01单体、模块化单体、微服务与回迁演进决策图
legacy-fig-02微服务全量知识图谱全量知识图谱
legacy-fig-03legacy-fig-04legacy-fig-06legacy-fig-08注册发现、远程调用、限流熔断、链路证据服务治理与韧性图集
legacy-fig-05本地事实、消息发布、消费与补偿失败窗口分布式事务与消息一致性图集
legacy-fig-07灰度路由、兼容与共享资源污染灰度与兼容图
legacy-fig-09legacy-fig-10legacy-fig-11供应链架构、库存预占与支付收敛项目案例与事故图集

9. 旧正文迁移说明

旧根正文基线为 906 行,旧源对象哈希为 64758290bf4c4cf516ca4f7b446e8964e6812f8b。该哈希只用于识别迁移源,不代表当前导航入口的文件哈希,也不得因入口重写而改写。

旧正文不再作为机制答案的并行副本。迁移口径保留如下:

旧对象数量迁移说明
章节题420107legacy-k-* 稳定标识升级为章节六字段题
模块题2508legacy-bank-01legacy-bank-25 保留题意并升级为综合口述题
旧题合计6742 + 25 = 67;机制正文归 0107,题体闭环归 08
Mermaid(图表语法)图11按本入口“图形索引”和 00 迁移账本进入唯一责任分册
表格13组件职责归 00,演进与拆分归 01,领域边界归 02,一致性归 03,治理归 04,事务归 05,项目数据归 07
数据演绎3重试风暴归 04;支付回调与库存补偿归 07
排查专题3调用超时、数据不一致和灰度事故统一归 07 的事故证据链
项目话术4演进归 01,稳定性归 04,分布式事务归 05,灰度发布归 06
复习项1000复习路线组织,并由 08 综合题库校验口述能力

迁移核对必须同时满足 67/67 道旧题、11/11 张图、13/13 张表、3/3 组数据、3/3 个排查专题、4/4 段项目话术和 10/10 项复习目标;总数相等不能替代逐项语义与链接核对。完整稳定标识、唯一去向和版本记录以迁移账本为准。

10. 快速复习入口

  • 架构判断00 -> 01 -> 02 -> 03,回答为什么不默认拆、如何划边界、分区时如何取舍。
  • 治理与事务03 -> 04 -> 05 -> 06,回答超时与重试如何放大、事务模式如何选择、发布如何兼容和回滚。
  • 项目串讲01 -> 02 -> 04 -> 05 -> 06 -> 07,回答权威源、幂等键、状态机、补偿、指标、降级和人工闭环。
  • 临场冲刺00 -> 07 -> 08,先用项目证据回答,再沿题内链接补足机制。

完成复习的判断标准不是“记住组件名”,而是能说清前提、状态推进、失败窗口、业务损失、观测证据、恢复步骤和不采用其他方案的原因。