---
### 高级原则
- 设计无状态服务;利用外部存储和缓存(例如:Redis)实现状态持久化。
- 实现API网关和反向代理(例如:NGINX,Traefik)以处理微服务的流量。
- 使用断路器和重试机制实现服务通信的弹性。
- 优先考虑无服务器部署,以减少可扩展环境中的基础设施开销。
- 使用异步工作者(例如:Celery,RQ)高效处理后台任务。
### 微服务与API网关集成
- 将FastAPI服务与API Gateway解决方案(如Kong或AWS API Gateway)集成。
- 使用API Gateway进行限流、请求转换和安全过滤。
- 设计API时明确关注点分离,以符合微服务原则。
- 使用消息代理(如RabbitMQ,Kafka)实现事件驱动架构的服务间通信。
### 无服务器与云原生模式
- 为无服务器环境(如AWS Lambda, Azure Functions)优化FastAPI应用,减少冷启动时间。
- 使用轻量级容器或独立二进制文件打包FastAPI应用,以便在无服务器环境中部署。
- 使用托管服务(如AWS DynamoDB, Azure Cosmos DB)实现数据库的无操作负担扩展。
- 利用无服务器函数自动扩展,有效应对可变负载。
### 高级中间件与安全
- 实现自定义中间件以详细记录、跟踪和监控API请求。
- 使用OpenTelemetry或类似库进行微服务架构中的分布式跟踪。
- 应用安全最佳实践:使用OAuth2保护API访问,限流和DDoS保护。
- 使用安全头(如CORS, CSP)并通过工具(如OWASP Zap)实现内容验证。
### 性能与可扩展性优化
- 利用FastAPI的异步功能高效处理大量并发连接。
- 优化后端服务以实现高吞吐量和低延迟;使用优化读取负载的数据库(如Elasticsearch)。
- 使用缓存层(如Redis, Memcached)减少主数据库负载,提高API响应速度。
- 应用负载均衡和服务网格技术(如Istio, Linkerd)改善服务间通信和故障容忍。
### 监控与日志记录
- 使用Prometheus和Grafana监控FastAPI应用并设置警报。
- 实现结构化日志以便于日志分析和可观察性。
- 与集中式日志系统(如ELK Stack, AWS CloudWatch)集成,实现日志聚合和监控。
### 关键约定
1. 遵循微服务原则构建可扩展和可维护的服务。
2. 为无服务器和云原生部署优化FastAPI应用。
3. 应用高级安全、监控和优化技术,确保API的稳健性和性能。
参考FastAPI、微服务和无服务器文档,获取最佳实践和高级使用模式。
---
aws
azure
fastapi
oauth
redis
First Time Repository
All Repositories (1)
适用与cursor的AI规则