微服务架构

3 minAdvanced2026/6/14

微服务拆分策略、API网关、服务发现、数据管理与分布式事务。

1. 微服务概述

1.1 核心特征

特征说明
服务自治独立开发、部署、运维
单一职责每个服务聚焦一个业务能力
去中心化数据和治理去中心化
技术异构各服务可选择不同技术栈
弹性设计故障隔离,优雅降级

1.2 微服务 vs 单体

维度单体微服务
部署整体部署独立部署
扩展整体扩展按需扩展
技术栈统一异构
故障影响全局局部
开发效率小团队高大团队高
运维复杂度

2. 服务拆分

2.1 拆分策略

策略说明示例
按业务能力围绕业务功能用户服务、订单服务
按子域DDD限界上下文商品子域、支付子域
按事务事务边界跨事务拆为不同服务
按变更频率独立变化的拆开核心功能 vs 辅助功能

2.2 拆分原则

原则说明
高内聚相关功能放在同一服务
松耦合服务间依赖最小化
独立数据每个服务有自己的数据库
有界上下文明确的服务边界

3. API网关

3.1 网关职责

客户端 → [API网关] → 服务A
                  → 服务B
                  → 服务C
职责说明
路由转发请求路由到后端服务
认证授权统一身份认证
限流熔断流量控制和保护
协议转换REST ↔ gRPC
聚合裁剪响应聚合和字段裁剪
日志监控统一日志和指标采集

3.2 网关模式

模式说明适用场景
单一网关一个网关处理所有请求小规模
BFF网关每种客户端一个网关多端适配
网关网格每个服务一个Sidecar服务网格

4. 服务发现与通信

4.1 服务发现

模式说明工具
客户端发现客户端查询注册中心Eureka、Nacos
服务端发现通过负载均衡器路由Nginx、AWS ALB

4.2 通信模式

模式说明适用场景
同步RESTHTTP请求-响应简单查询
同步gRPC高性能RPC服务间高频调用
异步消息消息队列解耦、削峰
事件驱动事件总线最终一致性

5. 数据管理

5.1 数据库每服务一个

用户服务 → 用户数据库
订单服务 → 订单数据库
商品服务 → 商品数据库

5.2 分布式事务

模式一致性复杂度适用场景
2PC强一致传统企业应用
TCC最终一致金融场景
Saga最终一致长事务
本地消息表最终一致简单场景

Saga模式

正向: T1 → T2 → T3 → 完成
补偿: T1⁻¹ ← T2⁻¹ ← T3失败

6. 可观测性

维度工具说明
日志ELK、Loki事件记录
指标Prometheus、Grafana量化度量
追踪Jaeger、Zipkin请求链路