/** * 熔断器模式实现 * 防止级联故障,提高系统稳定性 */ export declare enum CircuitState { /** 关闭状态:正常处理请求 */ CLOSED = "CLOSED", /** 开启状态:拒绝所有请求 */ OPEN = "OPEN", /** 半开状态:尝试恢复,允许部分请求通过 */ HALF_OPEN = "HALF_OPEN" } export interface CircuitBreakerOptions { /** 失败阈值:连续失败多少次后开启熔断 */ failureThreshold?: number; /** 成功阈值:半开状态下成功多少次后关闭熔断 */ successThreshold?: number; /** 超时时间:开启状态持续多久后进入半开状态(毫秒) */ timeout?: number; /** 监控窗口大小(毫秒) */ monitoringPeriod?: number; /** 最小请求数:在监控窗口内至少需要多少请求才触发熔断 */ minimumRequests?: number; /** 错误率阈值:错误率超过多少时开启熔断(0-1) */ errorRateThreshold?: number; } /** * 熔断器类 */ export declare class CircuitBreaker { private state; private failureCount; private successCount; private lastFailureTime; private records; private options; constructor(options?: CircuitBreakerOptions); /** * 执行函数,带熔断保护 */ execute(fn: () => Promise): Promise; /** * 成功回调 */ private onSuccess; /** * 失败回调 */ private onFailure; /** * 判断是否应该开启熔断 */ private shouldOpen; /** * 获取错误率 */ private getErrorRate; /** * 获取最近的请求记录 */ private getRecentRequests; /** * 清理过期记录 */ private cleanupOldRecords; /** * 获取当前状态 */ getState(): CircuitState; /** * 获取统计信息 */ getStats(): { state: CircuitState; failureCount: number; successCount: number; errorRate: number; totalRequests: number; }; /** * 手动重置熔断器 */ reset(): void; } /** * 熔断器开启错误 */ export declare class CircuitBreakerOpenError extends Error { constructor(message: string); } /** * 创建带熔断器的函数包装器 */ export declare function withCircuitBreaker Promise>(fn: T, breaker: CircuitBreaker): T;