← ClaudeAtlas

microservice-patternslisted

【微服务模式】微服务架构设计模式,包含服务拆分、通信方式、数据管理、服务发现、熔断降级、链路追踪。 触发时机: - 用户要求"微服务架构"、"服务拆分" - 需要设计分布式系统 - 需要实现服务治理 提供模式选择建议和代码实现。
afine907/skills · ★ 0 · AI & Automation · score 75
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