关于 circuit-breaker-pattern
用于在依赖外部系统的服务中实现熔断器模式的参考技能,涵盖故障处理、降级、监控及多种语言示例。
主要功能
- 01熔断状态与阈值
- 02降级和超时指导
- 03监控状态变化
- 04TypeScript、Python 和 Java 指南
适用场景
- 01保护外部 API 调用
- 02处理微服务或数据库故障
- 03限制故障级联
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill circuit-breaker-pattern安装后在 Claude Code 中输入/circuit-breaker-pattern确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/circuit-breaker-with-monitoring.mdopossum-style-circuit-breaker-nodejs.mdpython-circuit-breaker.mdresilience4j-style-java.mdtypescript-circuit-breaker.mdscripts/validate-api.shtemplates/api-scaffold.yaml详细介绍
熔断器模式
目录
概述
实现熔断器模式,防止故障级联,并在依赖项故障时实现平稳降级。
适用场景
- 调用外部 API
- 微服务通信
- 数据库连接
- 集成第三方服务
- 防止故障级联
- 实现回退机制
- 限流保护
- 超时处理
快速入门
最简可运行示例:
enum CircuitState {
CLOSED = "CLOSED",
OPEN = "OPEN",
HALF_OPEN = "HALF_OPEN",
}
interface CircuitBreakerConfig {
failureThreshold: number;
successThreshold: number;
timeout: number;
resetTimeout: number;
}
interface CircuitBreakerStats {
failures: number;
successes: number;
consecutiveFailures: number;
consecutiveSuccesses: number;
lastFailureTime?: number;
}
class CircuitBreaker {
private state: CircuitState = CircuitState.CLOSED;
private stats: CircuitBreakerStats = {
failures: 0,
// ... (see reference guides for full implementation)
参考指南
references/ 目录中的详细实现:
| 指南 | 内容 |
|---|---|
| TypeScript 熔断器 | TypeScript 熔断器 |
| 带监控的熔断器 | 带监控的熔断器 |
| Opossum 风格熔断器(Node.js) | Opossum 风格熔断器(Node.js) |
| Python 熔断器 | Python 熔断器 |
| Resilience4j 风格(Java) | Resilience4j 风格(Java) |
最佳实践
✅ 应该做
- 根据使用场景设置合适的阈值
- 实现回退机制
- 监控熔断器状态
- 设置合理的超时时间
- 使用指数退避
- 记录状态转换
- 在频繁触发熔断时发出警报
- 测试熔断器行为
- 为每个依赖项使用独立的熔断器
- 实现健康检查
❌ 不要做
- 为所有依赖项使用同一个熔断器
- 设置不切实际的阈值
- 跳过回退机制的实现
- 忽略处于开启状态的熔断器
- 使用过于激进的重置超时时间
- 忘记监控
评论
支持 Markdown