microservice-patternslisted
Install: claude install-skill afine907/skills
# Microservice Patterns — 微服务设计模式
微服务架构的核心设计模式和最佳实践。
## Goal
微服务架构设计模式,包含服务拆分、通信方式、数据管理、服务发现、熔断降级、��路追踪
## Trigger
- 用户要求"微服务架构"、"服务拆分"
- 需要设计分布式系统
- 需要实现服务治理
## 服务拆分原则
### 拆分策略
| 策略 | 说明 | 示例 |
|------|------|------|
| 按业务领域 | DDD 限界上下文 | 用户服务、订单服务、商品服务 |
| 按子域 | 核心域/支撑域/通用域 | 订单(核心)、库存(支撑)、认证(通用) |
| 按变更频率 | 稳定/易变分离 | 基础数据 vs 业务逻辑 |
| 按团队 | 团队自治 | 每个团队负责一组服务 |
### 拆分反模式
| 反模式 | 问题 | 解决 |
|--------|------|------|
| 过早拆分 | 复杂度爆炸 | 先单体,后拆分 |
| 粒度过细 | 分布式单体 | 合并紧密耦合的服务 |
| 共享数据库 | 服务间强耦合 | 每个服务独立数据库 |
## 通信模式
### 同步通信 (HTTP/gRPC)
```
服务A ──HTTP/gRPC──▶ 服务B
◀──Response──
```
| 方式 | 优势 | 适用场景 |
|------|------|----------|
| REST | 简单、通用 | 对外 API、CRUD |
| gRPC | 高性能、强类型 | 内部服务通信、流式 |
| GraphQL | 灵活查询 | BFF 层、前端聚合 |
### 异步通信 (消息队列)
```
服务A ──Publish──▶ 消息队列 ──Consume──▶ 服务B
```
| 方式 | 优势 | 适用场景 |
|------|------|----------|
| 事件驱动 | 解耦、可扩展 | 状态变更通知 |
| 命令队列 | 削峰填谷 | 异步任务处理 |
| 发布/订阅 | 一对多广播 | 缓存刷新、日志收集 |
### 同步实现示例
```python
# gRPC 服务定义
# user.proto
syntax = "proto3";
service UserService {
rpc GetUser(GetUserRequest) returns (User);
rpc ListUsers(ListUsersRequest) returns (ListUsersResponse);
}
message GetUserRequest {
string id = 1;
}
message User {
string id = 1;
string email = 2;
string name = 3;
}
# gRPC 客户端
import grpc
from user_pb2_grpc import UserServiceStub
from user_pb2 import GetUserRequest
class UserClient:
def __init__(self, host: st