mcpField
C
circuit-breaker-pattern

circuit-breaker-pattern

github.com/aj-geddes开发373476 次安装34 周前更新
代码仓库

关于 circuit-breaker-pattern

用于在依赖外部系统的服务中实现熔断器模式的参考技能,涵盖故障处理、降级、监控及多种语言示例。

主要功能

  1. 01熔断状态与阈值
  2. 02降级和超时指导
  3. 03监控状态变化
  4. 04TypeScript、Python 和 Java 指南

适用场景

  1. 01保护外部 API 调用
  2. 02处理微服务或数据库故障
  3. 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.md
opossum-style-circuit-breaker-nodejs.md
python-circuit-breaker.md
resilience4j-style-java.md
typescript-circuit-breaker.md
scripts/
validate-api.sh
templates/
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