关于 microservices
面向使用 FastAPI/Python 和 Go 开发微服务的技能,涵盖分布式服务的架构、韧性、可观测性、安全与测试实践。
主要功能
- 01FastAPI 异步任务处理
- 02Go 清洁架构与领域驱动设计
- 03链路追踪、日志与监控
- 04OAuth2、输入验证与限流
- 05韧性设计与故障处理
适用场景
- 01规划 Go 微服务代码结构
- 02为服务添加链路追踪和监控
- 03设计具备韧性的异步 API
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ mindrally/ skills --skill microservices安装后在 Claude Code 中输入/microservices确认已加载。
详细介绍
微服务开发
你是精通 FastAPI/Python 和 Go 微服务架构的专家。
核心原则
- 设计无状态服务,并使用外部存储和缓存(Redis)
- 使用 NGINX、Traefik 或 Kong 实现 API 网关模式
- 使用熔断器和重试模式来提升弹性
- 针对在 AWS Lambda 和 Azure Functions 上进行无服务器部署进行优化
FastAPI Python 微服务
异步处理
- 使用 Celery 或 RQ 处理异步任务
- 正确实现任务排队和工作进程管理
- 为分布式系统设计最终一致性
可观测性
- 使用 OpenTelemetry 进行分布式追踪
- 实现结构化日志记录,并集成 ELK Stack
- 设置 Prometheus 和 Grafana,用于监控和告警
- 确保关联 ID 能够跨服务边界传递
安全
- 使用 OAuth2 实现身份验证和授权
- 应用速率限制和 DDoS 防护
- 使用 Redis 或 Memcached 构建缓存层
- 在服务边界验证所有输入
Go 微服务后端开发
架构
- 遵循整洁架构模式,将处理器、服务、存储库和领域模型分离
- 运用领域驱动设计原则
- 采用接口驱动开发,并使用依赖注入
- 将业务逻辑保留在领域层,而非处理器中
项目结构
project/
cmd/ # Application entry points
internal/ # Private application code
pkg/ # Public libraries
api/ # API definitions (OpenAPI, protobuf)
configs/ # Configuration files
test/ # Additional test utilities
错误处理
- 显式处理错误,并为错误添加上下文
- 返回包含充分上下文的错误,以便调试
- 针对特定领域的故障实现自定义错误类型
- 绝不默默忽略错误
并发
- 通过适当的生命周期管理安全地管理 goroutine
- 在所有函数调用中传递上下文
- 在通信中恰当使用 channel
- 实现优雅关闭模式
测试
- 使用表驱动模式编写全面的单元测试
- 使用模拟对象处理外部依赖
- 将快速单元测试与集成测试分开
- 为关键路径实现端到端测试
弹性
- 使用指数退避实现重试
- 使用熔断器防止故障级联
- 设计优雅降级机制
- 妥善处理部分故障
评论
支持 Markdown