D
AI
学习工作台
8 周后端冲刺2026-05-221 分钟阅读

微服务架构

拆分、网关、注册发现、熔断降级与可观测

8周冲刺week7微服务架构记笔记标记疑惑

单体 vs 微服务

单体:简单部署,模块内调用。微服务:独立进程、独立 DB(理想)、技术栈可选。代价:网络调用、分布式 tracing、部署复杂度

核心组件

Client → API Gateway → Service A ↔ Service B
              ↓
         Registry (etcd/consul)
              ↓
         Config / Trace / Log
  • 注册发现:实例上下线自动更新
  • 配置中心:动态开关
  • 链路追踪:OpenTelemetry trace id 贯穿

通信

  • 同步 REST/gRPC:简单、耦合高
  • 异步 MQ:解耦、最终一致(Week 6)

resilience 模式

  • 超时 必设
  • 重试 仅幂等接口 + 退避
  • 熔断 错误率超阈打开,冷却后 half-open
  • 舱壁 线程池隔离
  • 限流 令牌桶保护自身

数据一致性

每服务私有 DB;跨服务 Saga 编排或编排器补偿,避免 2PC 锁资源。

可观测性

Metrics(Prometheus)、Logs(ELK)、Traces(Jaeger)。SLI/SLO 驱动告警。

与 Go 栈

Go 微服务常见:gin/echo + grpc + k8s + istio sidecar mTLS。

面试

画你项目服务拆分;一次线上故障如何用熔断与降级止血。下一篇:week07-system-design-framework

实战巩固与面试表达

本篇属于 8 周冲刺 week07-microservices-design 主题。复习时先闭卷回答 frontmatter 中三张 flashcard,再展开口述两个「为什么」:为什么这种方案能 work、边界失败时如何降级。与相邻章节对照:算法篇强调复杂度与模板,Go 篇强调工程默认写法,中间件篇强调线上故障案例。

动手与自检清单

用 25 分钟限时做 1 道相关练习题或画出一张架构/数据结构示意图;用 5 分钟写 STAR 片段说明你在项目里是否用过类似技术。记录 3 个面试追问及你的标准答法,存入 /zh/notebook/master-plan 笔记。若某点不熟,回到对应 /chapters 交互 Lab 重新走一遍流程,比死记卡片更有效。

易错点提醒

避免只背名词不会画图;避免只说优点不谈 trade-off(性能、一致性、运维成本至少提一项);避免把学习 Demo 说成百万 QPS 生产。回答时使用「场景 → 方案 → 结果 → 反思」四段式,体现工程成熟度。

补充要点

BFF 聚合减少客户端往返;sidecar 模式 service mesh。配置热更新与 feature flag。灰度发布 canary 按流量百分比。

自检

列举 3 个「不应微服务化」的信号(小团队、强事务、低 QPS)。

知识卡片

问题

微服务拆分依据?

点击翻转查看答案

答案

领域边界(DDD 限界上下文)、独立部署伸缩、团队 ownership;避免过度拆分导致分布式事务与运维爆炸。

问题

API 网关职责?

点击翻转查看答案

答案

统一入口:路由、鉴权、限流、SSL 终止、聚合 BFF;隐藏内部拓扑。

问题

熔断降级做什么?

点击翻转查看答案

答案

下游故障时快速失败或返回兜底,防雪崩;Hystrix/Sentinel 半开探测恢复。