[ PROMPT_NODE_24970 ]
Resources 实施手册
[ SKILL_DOCUMENTATION ]
# 微服务模式实施手册
此文件包含该技能引用的详细模式、检查清单和代码示例。
# 微服务模式
掌握微服务架构模式,包括服务边界、服务间通信、数据管理和弹性模式,用于构建分布式系统。
## 何时使用此技能
- 将单体应用拆分为微服务
- 设计服务边界和契约
- 实现服务间通信
- 管理分布式数据和事务
- 构建弹性分布式系统
- 实现服务发现和负载均衡
- 设计事件驱动架构
## 何时不使用此技能
- 系统规模较小,适合模块化单体架构
- 需要快速原型开发,无需分布式系统的复杂性
- 缺乏分布式系统的运维支持
## 指令
1. 识别每个服务的领域边界和所有权。
2. 定义契约、数据所有权和通信模式。
3. 规划弹性、可观测性和部署策略。
4. 提供迁移步骤和运维护栏。
## 核心概念
### 1. 服务拆分策略
**按业务能力**
- 围绕业务功能组织服务
- 每个服务拥有其领域
- 示例:订单服务、支付服务、库存服务
**按子域 (DDD)**
- 核心域、支撑子域
- 限界上下文映射到服务
- 清晰的所有权和责任
**绞杀者模式 (Strangler Fig Pattern)**
- 从单体中逐步提取
- 将新功能作为微服务实现
- 代理路由到旧/新系统
### 2. 通信模式
**同步 (请求/响应)**
- REST API
- gRPC
- GraphQL
**异步 (事件/消息)**
- 事件流 (Kafka)
- 消息队列 (RabbitMQ, SQS)
- 发布/订阅模式
### 3. 数据管理
**每个服务一个数据库**
- 每个服务拥有其数据
- 无共享数据库
- 松耦合
**Saga 模式**
- 分布式事务
- 补偿操作
- 最终一致性
### 4. 弹性模式
**断路器 (Circuit Breaker)**
- 在重复错误时快速失败
- 防止级联故障
**带退避的重试 (Retry with Backoff)**
- 瞬态故障处理
- 指数退避
**舱壁模式 (Bulkhead)**
- 隔离资源
- 限制故障影响
## 服务拆分模式
### 模式 1:按业务能力
python
# 电子商务示例
# 订单服务
class OrderService:
"""处理订单生命周期。"""
async def create_or