← 返回首页
高频微服务

微服务架构 Microservices

论文最常作主线题之一,案例也常考。务必能 画出整体架构 + 解释 6 大核心组件

高频 · 论文热门 分值 15~25

一、定义与核心特征

微服务(Microservices)是一种把应用拆分为一组小而自治的服务,每个服务围绕业务能力构建、独立部署、独立技术栈,通过轻量协议(REST/gRPC/消息)通信。

6 大核心特征

  1. 单一职责:每个服务做一件事
  2. 独立部署 / 独立进程
  3. 去中心化数据管理:每个服务有独立数据库
  4. 轻量级通信:REST / gRPC / MQ
  5. 去中心化治理:技术栈自由
  6. 容错与弹性:熔断、限流、降级
口诀:"单·独·去·轻·治·弹"

二、微服务 6 大核心组件 ⭐⭐⭐

       [客户端 / App]
            │
       [API 网关]   ← 鉴权·限流·路由·聚合
            │
  ┌────┬────┼────┬────┐
[服务A][服务B][服务C][服务D]   ← 独立部署
  │              │
[服务注册中心]   [配置中心]
[链路追踪]       [集中日志]
[熔断/限流]      [服务监控]
组件作用常见实现
API 网关统一入口、鉴权、限流、协议转换、聚合Spring Cloud Gateway、Kong、Zuul
服务注册与发现服务上下线动态感知Eureka、Nacos、Consul、ZooKeeper
配置中心统一管理多环境/多服务配置Apollo、Nacos、Spring Cloud Config
熔断 / 限流 / 降级故障隔离、保护后端Hystrix、Sentinel、Resilience4j
链路追踪跨服务调用可视化SkyWalking、Zipkin、Jaeger
集中日志统一收集、查询日志ELK、EFK、Loki

三、微服务 vs SOA vs 单体 ⭐⭐⭐

对比项单体SOA微服务
粒度整体粗粒度细粒度
通信函数调用ESB 总线API 网关 + REST/gRPC
数据库共享多数共享独立(每服务一库)
部署一起部署统一部署独立部署
技术栈统一受限自由
治理无集中(ESB)去中心化

四、优缺点(必背)

优点
  • 独立部署 → 迭代快
  • 技术栈自由
  • 故障隔离
  • 按需弹性伸缩
  • 易于团队并行开发
  • 易于复用、可替换
缺点
  • 分布式复杂度高
  • 数据一致性挑战
  • 运维成本高(需 DevOps)
  • 服务间通信开销
  • 测试与调试困难
  • 需基础设施成熟(K8s)

五、核心难点与对策

1. 服务拆分原则

2. 分布式事务

3. 数据一致性 —— CAP / BASE

CAP一致性(C)+ 可用性(A)+ 分区容忍(P),只能选 2 BASE基本可用(BA)+ 软状态(S)+ 最终一致(E)

4. 服务容错(熔断 / 限流 / 降级)

5. 服务通信

六、答题模板

题型:为什么要从单体改造为微服务?

三段式:

  1. 单体痛点:代码膨胀、迭代慢、技术栈固化、单点故障
  2. 微服务收益:独立部署、独立扩展、故障隔离、技术栈自由、易于团队并行
  3. 风险与对策:分布式复杂度 → 用 K8s / 服务网格;数据一致性 → 用 Saga / 消息;运维 → DevOps + CI/CD
题型:微服务拆分原则是什么?
  • 按业务能力(DDD 限界上下文)
  • 单一职责、高内聚低耦合
  • 合适粒度
  • 独立数据存储
  • 团队自治(亚马逊"两个披萨"原则)

七、必背口诀

6 大特征:单·独·去·轻·治·弹

6 大组件:网关 · 注册 · 配置 · 熔限降 · 链路 · 日志

分布式事务:2PC · TCC · Saga · 消息表 · 事件驱动

容错三宝:熔断 + 限流 + 降级

📝 论文得分点

论文中谈微服务,务必带上 具体技术栈(Spring Cloud / K8s / Nacos / Sentinel),并给出 量化数据(QPS 提升 N 倍、上线频次提升)。

📗 高频专题 · 微服务架构 完