系统架构基础
系统架构基础
一条用户请求从客户端发出到收到响应,穿过接入层、服务层与数据层;异步操作经由消息队列在后台完成。看懂这条链路,才知道砍成本、提性能、排风险要动哪一层。产品侧「业务 / 应用 / 技术 / 数据」四层地图见 AI 系统架构。
整体架构总览
典型请求链路:
flowchart LR
subgraph access["接入层"]
web[Web 前端]
app[移动端 App]
mini[小程序]
end
subgraph service["服务层"]
gateway[API 网关]
api[服务端 API]
worker[异步任务]
end
subgraph async["异步层"]
mq[消息队列]
end
subgraph data["数据层"]
db[(数据库)]
cache[(缓存)]
end
subgraph external["外部依赖"]
third[第三方服务]
end
web --> gateway
app --> gateway
mini --> gateway
gateway --> api
api --> db
api --> cache
api --> mq
mq --> worker
worker --> third
api -.-> thirdWeb / App / 小程序请求先到 API 网关。网关做统一入口(鉴权、限流、路由),转发给服务端 API。服务端读写数据库与缓存;数据库保存业务事实,缓存只加速读取。异步操作写入消息队列,由 Worker 消费并调用下游;需同步外部能力时直连第三方服务。消息队列属于异步层;业务事实写在数据库。
前端与客户端
Web 前端:渲染方式决定 HTML 生成时机、首屏、SEO、数据时效和交互启动;SSG、SSR、CSR 可以按页面和组件混合使用。SPA 描述路由与页面切换形态,不与这些渲染方式并列。术语和选型详见 前端渲染技术与黑话。
- 移动端 App:原生(iOS/Android)与跨端框架(React Native、Flutter)两类。发版受应用商店审核约束,更新周期以天到周计。
- 小程序:平台托管运行,受平台 API 与审核约束,更新即时。
- 桌面端:Electron 等方案打包,资源开销大,更新节奏慢。
与后端交互:
- HTTP API:请求-响应模型,适合读写数据;客户端轮询获取状态变化
- WebSocket:长连接双向推送,适合实时消息、协作编辑、行情
- SSE:服务端单向推送,适合通知、流式输出(大模型逐字返回)
- API 版本化:接口变更不破坏老客户端,路径加
/v1、/v2或 header 标记版本
PM 关注:
- 发版节奏:Web 静态资源发布快,仍受 CDN 缓存与服务端渲染发布约束;App 受应用商店审核,周期以天到周计;小程序通常快于商店,仍须过平台审核,不能当成即时开关。后端发版要兼容所有存量客户端。
- 兼容性:老客户端不升级时,后端接口必须向后兼容;API 版本化是基本手段。
- 性能指标:首屏耗时、白屏时间、接口响应时间,直接决定转化与留存。
后端与服务端
后端服务接收请求,完成鉴权、业务编排、数据读写和外部调用。单体、模块化单体和微服务是不同的部署与边界选择,不代表固定的产品规模或技术先进程度。接口契约、服务拆分、无状态、扩容与故障处理详见 后端与服务端术语;登录、会话与授权详见 身份认证与权限。
PM 关注:
- 接口契约:前后端、服务之间以接口契约为准,改动要评估影响面与兼容性。
- 依赖的服务清单:一个功能依赖哪些内部服务与外部依赖,出故障才知道影响范围。
- 扩容成本:水平扩容按流量增加实例与成本;无状态和共享状态设计决定能否扩展。
数据库
数据库保存业务事实,关系型数据库、文档数据库、键值存储和搜索引擎分别适合不同的数据模型与访问模式。事务、Schema、索引、复制、迁移、备份和恢复详见 数据库与数据存储术语。
常见分工:关系型数据库承载结构化事务;文档或键值数据库适合特定访问模式;搜索引擎服务全文检索;Redis 既可做分布式缓存,也可承担会话、计数等轻量状态。
PM 关注:
- 事实归属:明确哪一个系统保存最终业务事实,缓存、搜索索引和副本不能无条件替代它。
- 数据模型变更:加字段、改结构要评估迁移、老数据兼容、回填、校验与回滚。
- 规模与恢复:容量、备份、复制延迟、RPO 与 RTO 都要纳入成本和上线验收。
缓存
缓存把热点数据放到更近的存储,降低延迟并保护数据库;同时引入缓存副本、过期和一致性风险。CDN、本地缓存、分布式缓存、TTL 以及击穿/穿透/雪崩详见 缓存技术与黑话。
常见分层:CDN 负责静态资源和公共响应的就近分发;本地缓存读取最快但实例间不共享;分布式缓存供多个服务实例共享热点数据、会话和计数。
PM 关注:
- 缓存降本,也引入脏数据:缓存与数据库不一致时,用户读到旧数据。
- 数据一致性要求高的场景(订单、余额)慎用缓存;允许短暂滞后才用。
- 缓存击穿、穿透、雪崩和集群不可用都要有回源限流与降级方案。
消息队列
消息队列在生产者和消费者之间提供缓冲,承担解耦、削峰和异步。引入后要面对重复、乱序、积压、重试和死信,不能把「写入队列成功」当作业务已经完成。投递语义、幂等、背压和补偿详见 消息队列与异步系统。
PM 关注:
- 引入时机:同步调用链路过长、峰值流量打垮系统、需要解耦多个下游时考虑。
- 结果可见性:异步任务要有状态、进度、通知和失败入口,区分已提交与已完成。
- 可靠性代价:消息丢失、重复消费、顺序问题、消费积压和运维复杂度要一并承担。
第三方服务
支付、短信/通知、地图、OAuth 登录、对象存储、SaaS API、风控/内容安全和模型 API 都属于外部依赖。服务集成、Webhook、SLA、配额、数据出域、降级和供应商退出详见 第三方服务与外部依赖。
集成风险:
- 供应商不可用:第三方故障时主链路要降级与熔断,必要时走备用通道。
- 数据出域合规:数据传给第三方要过合规评审,用户隐私尤其严格。
- 依赖锁定:供应商涨价、下线、改接口,切换成本高;适配层和退出预案要提前建设。
PM 关注:
- 选型时评估 SLA、配额、计费和替代方案:功能之外,重点看可用性承诺与退出通道。
- 第三方故障:降级策略要在产品里想好(提示文案、备用通道、缓存兜底)。
- 写操作超时:不能直接判定失败,要通过幂等、状态查询、回调或对账确认最终状态。
AI 产品的请求链
接模型 API 时,请求链多一截:产品服务先完成鉴权与业务校验,再经模型网关或直接调用供应商,流式结果经 SSE / WebSocket 回传客户端。
flowchart LR
user[用户] --> app[产品服务]
app --> auth[鉴权与配额]
auth --> gw[模型网关或直连]
gw --> model[模型 API]
model --> app
app --> eval[日志、评测与成本]产品经理要单独问清:提示词与模型版本谁发布、超时与重试会不会重复扣费、工具调用的副作用如何确认、流式中断时用户看到什么。模型供应商按外部依赖治理,详见 第三方服务与外部依赖 与 LLM API 与供应商。
架构决策对 PM 的意义
- 砍成本:缓存挡热点读、异步削峰降机器、冷数据降存储档
- 提性能:CDN 就近分发、索引加速、读写分离、缓存
- 排风险:第三方降级预案、消息队列解耦、数据一致性评估
站内延伸:
- 工程架构术语:按组件查阅前端、后端、身份、数据库、缓存、消息队列、可观测性与第三方服务
- 部署与环境:环境隔离、放量策略与回滚
- 可观测性:灰度与事故要看的信号
- 身份认证与权限:网关之后的认证与资源授权
- AI 系统四层架构:业务/应用/技术/数据四层地图
- Agent 架构:任务拆解与工具编排
- RAG 检索进阶:关键词、向量检索与融合
来源说明
本文为通用工程知识整理,组件细节以各术语页列出的官方文档为准(访问日期 2026-09-04):
- MDN:HTTP overview
- OpenAPI Specification
- 数据库、缓存、消息队列与第三方集成见对应术语页的来源说明
发现错误?想一起完善? 在 GitHub 上编辑此页!
本页面贡献者:AI-PM Wiki Team
本页面的全部内容在 CC BY-SA 4.0 和 SATA 协议之条款下提供,附加条款亦可能应用