Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

系统设计与架构实战:原理、工程与电商案例

这是一本面向中高级工程师、技术负责人和架构师的系统设计实践书。全书以系统设计方法论为主线,结合中间件、可靠性工程、工程治理和电商业务案例,帮助读者把“会画架构图”推进到“能落地、能治理、能复盘”的工程能力。

本书强调三个判断:

  • 系统设计首先是业务边界、数据事实和失败语义的设计,不只是组件堆叠。
  • 架构方案必须能经受生产环境的流量、故障、变更、对账和资损风险考验。
  • 电商系统是理解复杂业务系统的高密度样本,商品、库存、营销、计价、订单、支付和供应商同步能覆盖大量通用架构问题。

适合读者

  • 已有后端开发经验,希望系统化提升架构设计能力的工程师。
  • 正在负责业务系统拆分、重构、稳定性治理或技术方案评审的技术负责人。
  • 准备系统设计面试,希望把项目经验组织成清晰表达的候选人。
  • 希望通过电商场景理解交易链路、一致性、对账、补偿和资损防控的读者。

本书结构

  1. 系统设计方法论(第 1-9 章):问题定义、方案设计、业务边界、内部结构、系统集成、架构质量与编码落地,以及可靠性与工程治理(对账补偿、DLQ、故障恢复、资损防控、容量规划、限流、熔断和降级)。
  2. 基础设施与计算机基础(第 10-22 章):MySQL、Redis、Kafka、Elasticsearch、Kubernetes、全局 ID 与技术选型,以及操作系统、网络、Shell、Python、C++、Go。
  3. 电商系统设计实战(第 24-36 章):电商全景、商品、库存、营销、计价、搜索、购物车、订单、支付、供应商同步、供给治理和 B2B2C 综合案例。
  4. 系统设计面试(第 37-46 章):中间件、可靠性、电商架构题库、交易链路、容量估算和白板答辩。

全书逐章速览

第一部分:系统设计方法论

章节主题内容速览阅读收获
第 1 章系统设计与方案写作从系统设计的核心问题、容量成本权衡和一致性取舍出发,把架构判断组织成可评审、可执行、可复盘的技术方案。建立从问题定义到 TD 落地的设计表达能力。
第 2 章编码、重构与 Code Review把架构意图落到代码边界、重构节奏和评审标准中,讨论如何避免 Controller、Service、DAO 与外部依赖混杂。用代码结构和 Review 持续守住系统可演进性。
第 3 章生产治理与技术债务以治理、保障和技术债务的反馈环为主线,拆解 SLO、错误预算、韧性设计、应急保障和还债机制。能把稳定性、债务和交付速度放进同一套治理框架评估。
第 4 章大事务与最终一致性从电商创单切入,比较同步 RPC、Saga、TCC、Outbox 和补偿机制,说明跨系统副作用如何收敛。设计可恢复、可补偿、可审计的大事务链路。
第 5 章长生命周期业务流程区分大事务和长流程,围绕订单、商品、退款、入驻和审批等场景展开状态机、编排、恢复与治理。掌握业务对象跨阶段推进的状态建模和恢复设计。
第 6 章任务处理与 Agent 协作从短任务、长任务、后台任务到 Agent 协作,梳理任务生命周期、调度、幂等、重试、可观测和人机协同边界。为异步任务和长任务系统建立清晰的执行与治理模型。
第 7 章高准确性与强一致性聚焦支付、库存和账务等不能只靠最终一致性口号兜底的场景,强调权威事实、CP 核心段、幂等和对账。能优先保护业务事实,并为强一致链路设计吞吐边界。
第 8 章低延迟复杂读面向搜索、推荐、广告和 Feed,分析读写不对称、复杂查询、结果质量和性能耦合下的读模型与缓存策略。设计高性能读路径,并说明一致性、相关性和延迟取舍。
第 9 章高并发写与热点以秒杀、社交互动和流量洪峰为代表,讨论削峰、排队、热点隔离、快反馈和后端异步收敛。能识别极端写入热点,并设计抗洪峰的写链路。

第二部分:基础设施与计算机基础

章节主题内容速览阅读收获
第 10 章MySQL 存储与数据库介绍 MySQL 在电商系统中的定位,覆盖 InnoDB、表设计、索引、事务、分库分表和线上治理。从访问模式和一致性要求倒推数据库建模与索引设计。
第 11 章Redis 缓存实践梳理 Redis 数据结构、持久化、复制、集群、缓存一致性、分布式锁和热点治理。设计缓存、锁和热点保护时能避开常见误区。
第 12 章Kafka 消息队列与异步讲解 Topic、分区、消费组、顺序性、可靠性、幂等、高吞吐、积压和回压处理。能用消息队列拆解异步链路,并治理重复、乱序和积压。
第 13 章Elasticsearch 搜索与索引覆盖倒排索引、分片副本、写入查询链路、Mapping、分词、相关性、深分页和集群治理。建立搜索读模型、索引设计和性能优化的基础判断。
第 14 章Kubernetes 与 Docker从容器化价值与边界讲到 Docker 模型、Kubernetes 对象、调度发布、服务治理、网络配置和资源管理。能理解容器平台如何支撑发布、伸缩、隔离和故障排查。
第 15 章全局 ID 与基础服务说明电商 ID 分类、全场景 ID 清单和 DB、Redis、雪花算法等发号方案的能力边界。为订单、商品、库存等核心对象选择可扩展的 ID 体系。
第 16 章技术栈选型按选型顺序、组件职责边界、电商示例和评审清单,讨论技术方案为什么选、何时不选。能把技术选型转化为可解释、可复盘的架构决策。
第 17 章操作系统基础复习进程线程、调度、虚拟内存、文件系统、I/O、并发同步和死锁等工程常用知识。用操作系统视角解释性能、资源和并发问题。
第 18 章计算机网络实践覆盖网络分层、TCP、UDP、HTTP、HTTPS、DNS、CDN、代理和常见网络问题排查。能把网络协议知识应用到链路设计、延迟分析和故障定位。
第 19 章Bash 与 Shell 实用讲解 Shell 基础、命令组织、文本处理、管道、grep、sed、awk、日志排查和自动化脚本。提升命令行排查、批处理和轻量自动化能力。
第 20 章Python 实践介绍 Python 的工程用途、常用语法、标准库、自动化、数据处理、调试、性能和常见坑。用 Python 快速完成工具脚本、数据处理和验证任务。
第 21 章C++ 实践聚焦内存模型、对象生命周期、STL 容器算法、字符串处理、性能优化和常见陷阱。理解 C++ 性能和内存风险,支撑底层问题分析。
第 22 章Go 语言实践梳理 Go 的核心设计、goroutine、channel、接口、组合、错误处理、网络服务和并发实践。用 Go 设计清晰的并发服务和工程化后端模块。

第三部分:电商系统设计实战

章节主题内容速览阅读收获
第 24 章电商系统全景从业务架构、应用架构、数据架构和技术架构拆解电商核心域与支撑域,建立交易与支付主线。用全景图识别电商系统边界、依赖和核心风险。
第 25 章商品中心系统说明商品中心的定位、边界、架构分层、读写分离、SPU/SKU、类目属性和对外发布契约。设计稳定的商品主数据系统,并避免被展示和交易逻辑污染。
第 26 章商品供给与生命周期治理围绕供给入口、商品创建编辑、运营审核、生命周期治理和专项链路,分析商品不是简单 CRUD 的原因。设计覆盖创建、编辑、审核、发布和治理的商品供给平台。
第 27 章库存系统讨论库存的通用模型、虚拟库存、可售锁定已售、并发扣减、超卖防控、释放和对账补偿。区分热路径和权威路径,设计高并发且最终正确的库存系统。
第 28 章营销系统覆盖优惠券、积分、活动规则、预算控制、资格校验、试算、锁定、核销、释放和大促降级。设计可叠加、可核销、可控资损的营销能力。
第 29 章计价系统分析商品价格、营销优惠、会员权益、税费和运费如何合成为可解释、可追溯、可复算的价格结果。设计可防篡改、可复算、能跨页面保持一致的计价链路。
第 30 章搜索与导购区分搜索和导购,围绕统一查询服务、场景识别、查询编排、索引同步、筛选排序和降级展开。构建商品发现读路径,并治理搜索体验与主数据一致性。
第 31 章购物车与结算说明购物车和结算域的边界,覆盖未登录加购、登录合并、结算校验、价格库存营销重算和重复提交防护。把用户意图暂存和交易前强校验拆成清晰职责。
第 32 章订单系统从业务场景、状态机、订单数据模型、创单幂等、库存营销支付协作和异步补偿展开订单核心设计。设计以状态和交易事实为中心的订单系统。
第 33 章支付系统讲解支付单、渠道网关、回调幂等、重复乱序处理、退款状态机、对账和资金安全。设计可信资金状态,避免把渠道回调等同于本地交易完成。
第 34 章B2B2C 平台架构以机票、酒店等品类业务模型为背景,串联供应商、平台、用户、交易、履约和结算的完整架构约束。从多角色、多品类、多链路角度设计平台型电商架构。
第 35 章供给、库存、审核与运营全生命周期把商品创建、编辑、库存运营、生命周期治理和供应商协同放入一条端到端供给治理链路。设计供给侧全生命周期系统,并处理状态、审核、同步和恢复。
第 36 章C 端交易全生命周期从搜索导购、详情页、加购、结算、下单、支付、履约到售后,梳理 C 端用户完整交易动作。按用户旅程设计交易主链路,并识别每阶段的系统风险。

第四部分:系统设计面试

章节主题内容速览阅读收获
第 37 章系统设计面试综合总结系统设计面试考察点,覆盖需求澄清、容量估算、存储缓存消息搜索选型、高可用一致性和复盘方法。用稳定答题框架组织系统设计面试表达。
第 38 章中间件与可靠性追问按 MySQL、Redis、Kafka、Elasticsearch 和可靠性高频问题整理追问方向与回答模板。面对中间件和稳定性追问时能说清原理、边界和取舍。
第 39 章电商架构基础题库以服务拆分、数据一致性、大促稳定性、多机房多活等基础题,训练电商平台整体架构表达。把电商全景、领域边界和可靠性策略组织成面试答案。
第 40 章商品、库存、营销与计价题库围绕 SPU/SKU、详情页缓存、库存扣减、营销核销、计价一致性等供给与转化问题展开。回答供给侧专题题时能区分权威数据、读模型和交易约束。
第 41 章搜索、购物车、订单与支付题库聚焦搜索引擎、购物车合并、结算校验、订单状态机、支付回调和主链路补偿等问题。串联发现、结算、创单、支付和恢复的交易链路答题能力。
第 42 章综合实战案例题库通过百万级 QPS 商品详情页、秒杀、履约监控、大促压测、跨境结算等案例整合多维设计。在综合场景中同时展开容量、选型、性能、故障和治理方案。
第 43 章题库导航与章节补充提供题型标注、答案结构、难度说明、使用方式和面试官版题库导航。快速定位题库重点,并按题型选择合适的作答结构。
第 44 章商品、库存、营销与计价专题用专题方式总结商品中心、库存、营销、计价的边界、追问和综合题回答顺序。用一句话和一条链路讲清供给侧系统协作。
第 45 章搜索、购物车、订单与支付专题以用户从发现商品到完成交易的主链路为核心,讲清读路径性能、写路径正确性和失败恢复。把交易主链路答成状态流、数据模型、事件和补偿的组合。
第 46 章白板答辩与容量估算给出白板答辩顺序、容量估算口径、常见估算维度、画图粒度、表达句式和收尾方式。在有限时间内把规模、链路、取舍、风险和演进讲清楚。

阅读路线

  • 架构主线:第 1-9 章,配合第 10-16 章中间件。适合希望建立完整系统设计框架的读者。
  • 电商实战主线:第 24-36 章。适合正在做交易系统、供给系统、支付系统或平台型业务的读者。
  • 可靠性主线:第 3、4、7 章,结合第 32-33 章订单和支付阅读。适合做稳定性、故障恢复和资损防控治理。
  • 面试主线:第 37-46 章。适合把工程经验整理为系统设计表达。
  • 基础补齐主线:第 17-22 章。适合查漏补缺,补齐系统设计背后的计算机基础和编码能力。

使用建议

读这本书时,不建议只记结论。更好的方式是每读完一个系统章,都回答四个问题:

  1. 这个系统的权威数据是什么?
  2. 它负责什么,又明确不负责什么?
  3. 它和上下游如何协作,失败后由谁补偿?
  4. 它的监控、对账、灰度、回滚和资损防控怎么设计?

如果能把这四个问题说清楚,就已经从“功能设计”进入了“系统设计”。

本地构建

需安装 mdBook。本书复用 tools/mermaid-preprocessor.py 处理 Mermaid 图表。

cd books/system-design-architecture-book
mdbook build
mdbook serve

也可以在仓库根目录生成到 Hexo 本地预览目录并启动服务:

npm run server:system-design-architecture-book

启动后访问:

http://localhost:3000/system-design-architecture-book/