Infrastructure - 最佳实践
阅读路径
🔵🟡 开发者+运维:README → best-practices → configuration
日志最佳实践
✅ 推荐做法
使用模块级 logger
pythonfrom FQBase.Infrastructure import get_logger logger = get_logger(__name__)初始化日志系统
pythonfrom FQBase.Infrastructure import init_logging init_logging()
单例最佳实践
✅ 推荐做法
使用装饰器创建单例
python@singleton class MyService: pass测试时重置单例
pythonSingletonMeta.reset_singleton()
❌ 避免做法
- 不要在多进程环境下直接使用单例
- 进程间不共享内存
重试最佳实践
✅ 推荐做法
指定重试异常类型
python@retry(retry_on_exception=(ConnectionError, TimeoutError)) def call_api(): pass设置最大总等待时间
python@retry(max_total_wait=30.0) def call_api(): pass
熔断器最佳实践
✅ 推荐做法
合理设置阈值
python@circuit_breaker(failure_threshold=5, recovery_timeout=60) def call_api(): pass监控熔断器状态
pythonbreaker = CircuitBreaker(name='api') print(breaker.metrics.state)
依赖注入最佳实践
✅ 推荐做法
- 面向接口编程python
container.register_singleton(ICache, RedisCache) cache = container.get(ICache)