我们将十个阶段的知识整合到一个连贯的全栈工程架构视图中,从一次用户请求的完整生命周期出发,串联起每个阶段的核心角色。


全栈架构串联:一次数据请求的旅行

假设用户通过浏览器访问一个基于微服务的电商系统,用户登录后搜索商品、下单、支付,并收到实时推荐。下面用这个流程串联十个阶段。

0. 用户发起请求:前端与网络入口

涉及阶段:阶段1(Web架构基础)、阶段10(现代通信协议)

  • 浏览器输入域名 → DNS 解析(阶段3)→ HTTPS 请求(阶段3)。
  • 如果前端是 React/Vue 单页应用,它会通过 GraphQL(阶段10)或 REST API(阶段1)向后端发起数据查询。
  • 实时推送(如库存变化)使用 WebSocket(阶段10)或基于 HTTP/3 的 WebTransport

这一步串联:阶段1 的 HTTP、阶段10 的 GraphQL/WebSocket、阶段3 的 HTTPS/DNS。


1. 请求抵达后端:负载均衡与网关层

涉及阶段:阶段3(部署)、阶段4(软件架构)、阶段7(分布式系统)、阶段8(可观测性)

  • 请求首先到达 Nginx 反向代理(阶段3)或 API 网关(阶段7),后者负责路由、认证限流。
  • 网关可能将请求分发到微服务(阶段4)实例。服务发现(阶段7)协调后端节点。
  • 网关记录指标(QPS、延迟)到 Prometheus,并生成追踪 ID 注入请求头(阶段8)。

这一步串联:阶段3(Nginx)、阶段4(微服务)、阶段7(服务发现/负载均衡)、阶段8(可观测性数据采集)。


2. 身份认证与会话管理

涉及阶段:阶段1(认证)、阶段6(安全)、阶段3(Cookie/JWT)

  • 网关将请求透传到 认证服务(可能是微服务之一)。该服务验证 JWT 或从 Redis 中读取 Session(阶段1)。
  • 对于跨系统登录,使用 OAuth 2.0 / OIDC 流程(阶段6),返回 ID Token 和 Access Token。
  • 授权决策依据 RBAC(阶段6)判断用户是否有权限调用后续服务。

这一步串联:阶段1(JWT/Session)、阶段6(OAuth、RBAC)、阶段3(Cookie 安全标志)。


3. 业务逻辑处理:微服务调用与分布式事务

涉及阶段:阶段4(微服务/消息队列)、阶段7(分布式事务/共识)、阶段10(gRPC)

  • 订单服务收到请求后,需要调用库存服务和支付服务。为提升性能,服务之间使用 gRPC(阶段10)通信。
  • 为了保证数据最终一致性,采用 Saga 模式(阶段7),通过消息队列(阶段4)异步协调库存扣减和支付。
  • 库存服务本身是 Raft 集群(阶段7)以保证高可用;元数据(如库存总量)存储在 etcd 中。

这一步串联:阶段4(微服务、消息队列)、阶段7(分布式事务、共识)、阶段10(gRPC)。


4. 数据存取:数据库、缓存与索引

涉及阶段:阶段2(数据库)、阶段4(缓存)、阶段7(数据分片/一致性哈希)

  • 库存服务查询数据库(如 PostgreSQL)前,先访问 Redis 缓存(阶段4),用旁路缓存模式。
  • 数据库订单表做了范围分片(阶段7)以应对海量订单;分片路由通过一致性哈希(阶段7)代理(如 ShardingSphere)。
  • 商品搜索服务依赖 Elasticsearch 全文索引(阶段2补充),并利用倒排索引快速检索。

这一步串联:阶段2(SQL、索引、ORM)、阶段4(缓存)、阶段7(分片、一致性哈希)。


5. 异步处理与消息队列深化

涉及阶段:阶段4(消息队列)、阶段9(流处理)

  • 订单创建成功后,发送一个“订单已创建”事件到 Kafka(阶段4)。多个消费者并行处理:
  • 积分服务更新用户积分。
  • 物流服务触发发货。
  • 实时推荐引擎(Flink 流处理,阶段9)从 Kafka 读取事件,更新用户画像。
  • Kafka 使用了分区消费者组(阶段9)实现高吞吐和 Exactly-once 语义。

这一步串联:阶段4(消息队列)、阶段9(流处理引擎、Kafka 内部机制)。


6. 大数据与离线分析(批处理)

涉及阶段:阶段9(批处理、数据湖/仓库)

  • 每天凌晨,Spark 作业(阶段9)从 HDFS / S3 读取一天的订单日志(Parquet 格式),计算商品销量排行榜。
  • 结果写入 ClickHouse(阶段9 OLAP 引擎)供运营后台快速查询。
  • 原始数据同时存入 数据湖(Delta Lake)以备未来分析。

这一步串联:阶段9(批处理、数据湖格式、列式存储)。


7. AI 增强特性:搜索与推荐

涉及阶段:阶段5(AI架构)

  • 搜索服务使用 Embedding 模型将用户查询转为向量,在 向量数据库(如 Milvus)中检索相似商品(阶段5)。
  • 当用户打开商品详情页时,RAG(阶段5)从知识库中召回常见问题(FAQ)并生成个性化提示。
  • 推荐服务使用 Agent(阶段5)调用多个工具(用户历史、实时点击流、促销规则)来决策展示哪些商品。
  • 对外部天气 API 的调用通过 MCP(阶段5)标准化访问,而发送优惠券则通过 Tool Calling 触发营销系统。

这一步串联:阶段5(Embedding + 向量数据库 + RAG + Agent + MCP + Tool Calling)。


8. 全流程的可观测性与 DevOps

涉及阶段:阶段8(可观测性、CI/CD、K8s)

  • 上述所有服务运行在 Kubernetes 集群中(阶段8),通过 Istio 服务网格管理流量和策略。
  • 每次代码提交触发 GitHub Actions(阶段8)构建镜像,然后由 ArgoCD 自动部署到 K8s(GitOps)。
  • 服务日志通过 Fluentd 收集到 Loki(阶段8),指标由 Prometheus 采集,追踪由 Jaeger 收集。
  • 当订单服务错误率超过 SLO(阶段8)时,Alertmanager 发送告警到 PagerDuty,触发自动回滚或扩容。

这一步串联:阶段8(日志/指标/追踪、CI/CD、K8s、告警)。


9. 安全贯穿全流程

涉及阶段:阶段6(安全)、阶段3(HTTPS)、阶段1(Cookie/JWT)

  • HTTPS + HSTS(阶段3)保护传输层。
  • 所有 API 调用都需携带 JWT(阶段1),且通过 OAuth 2.0 授权(阶段6)。
  • 敏感数据(如密码)使用 bcrypt 哈希存储,且数据库连接使用 TLS。
  • 输入输出均做 XSSSQL 注入防护(阶段6),并配置 CSPCSRF Token

总图:十个阶段的分层协作

[用户]
   
   
[前端] ──GraphQL/WebSocket──┐           阶段1, 10
   │                         │
   ▼                         │
[API网关/Nginx]              │           阶段3, 7
   │                         │
   ├─ 认证服务 (OAuth2/OIDC) ┘           阶段1, 6
   
   ├─ 订单服务 ──gRPC──► 库存服务         阶段4, 7, 10
   │     │                   │
   │     └── Kafka ──────────┘           阶段4, 9
   │              │
   │              ├─ Flink 实时推荐       阶段9
   │              └─ Spark 批处理         阶段9
   
   ├─ 数据库 (分片+缓存) ───────────┐      阶段2, 4, 7
   │                               │
   └─ 向量数据库 + RAG/Agent ───────┘      阶段5

   [K8s + Istio + 可观测性栈]              阶段8

   [安全层贯穿:TLS + OAuth + 防护]        阶段6

关键认知
- 这些阶段不是孤立的,而是分层递进的关系:从单体 Web(阶段1-3)到分布式(阶段4,7),再到数据智能(阶段5,9)和云原生(阶段8,10)。
- 一个生产系统会同时涉及多个阶段,工程师需要理解它们之间的接口与权衡(例如:一致性 vs 可用性,实时性 vs 成本)。
- 没有银弹:小网站不需要 Kafka 或分布式事务;大系统必须在每个阶段做出合理选择。