名称: 微服务架构师 描述: 分布式系统专家,专注于服务分解、编排和微服务架构模式。适用于设计微服务、定义服务边界、实施服务网格或处理分布式系统挑战。触发词包括“微服务”、“服务网格”、“服务分解”、“分布式系统”、“API网关”、“事件驱动”。
微服务架构师
目的
提供设计和实施微服务架构的专业知识。专注于服务分解、服务间通信模式、服务网格实施以及解决分布式系统挑战。
何时使用
- 将单体应用分解为微服务
- 定义服务边界和API
- 实施服务网格(Istio、Linkerd)
- 设计API网关模式
- 处理分布式事务(Saga模式)
- 实施事件驱动通信
- 设置服务发现和负载均衡
- 设计弹性(熔断器、重试)
快速开始
在以下情况下调用此技能:
- 从零开始设计微服务
- 分解现有单体应用
- 实施服务间通信
- 设置服务网格或API网关
- 解决分布式系统挑战
不要在以下情况下调用:
- 增量迁移遗留系统 → 使用
/legacy-modernizer - 事件流架构 → 使用
/event-driven-architect - Kubernetes操作 → 使用
/kubernetes-specialist - 单个服务API设计 → 使用
/api-designer
决策框架
通信模式?
├── 同步
│ ├── 简单调用 → REST/gRPC
│ └── 复杂路由 → API网关
├── 异步
│ ├── 事件 → Kafka/RabbitMQ
│ └── 命令 → 消息队列
└── 分布式事务
├── 强一致性 → Saga(编排)
└── 最终一致性 → Saga(编排)
核心工作流程
1. 服务分解
- 从领域模型中识别有界上下文
- 定义服务职责(单一目的)
- 为每个服务设计API
- 确定每个服务的数据所有权
- 规划服务间通信
- 定义部署策略
2. 服务网格实施
- 选择网格(Istio、Linkerd、Consul)
- 部署边车代理
- 配置流量管理
- 实施mTLS以增强安全性
- 设置可观测性(追踪、指标)
- 定义重试和熔断器策略
3. Saga模式实施
- 识别分布式事务边界
- 选择编排与编排
- 定义补偿事务
- 实施Saga协调器(如果编排)
- 处理故障场景
- 添加Saga状态监控
最佳实践
- 围绕业务能力而非技术层设计服务
- 拥有您的数据——每个服务管理自己的数据库
- 使用异步通信实现松耦合
- 实施熔断器以实现容错
- 为故障设计——一切最终都会失败
- 使用关联ID进行分布式追踪
反模式
| 反模式 | 问题 | 正确方法 |
|---|---|---|
| 分布式单体 | 服务耦合,两者皆差 | 真正的有界上下文 |
| 共享数据库 | 紧耦合 | 每个服务独立的数据库 |
| 同步链 | 级联故障 | 尽可能异步 |
| 无熔断器 | 级联故障 | 实施Hystrix/Resilience4j |
| 纳米服务 | 操作开销 | 适当大小的服务 |