wae-resilience 0.0.2

WAE Resilience - 弹性模式,熔断器、限流器、重试、超时
Documentation

wae-resilience

弹性模块 - 提供系统弹性模式支持。

主要功能

  • 熔断器: 防止级联故障
  • 限流器: 控制请求速率
  • 重试策略: 智能重试机制
  • 舱壁隔离: 资源隔离保护

技术栈

  • 弹性模式: 多种弹性模式实现
  • 异步运行时: Tokio

使用示例

use wae_resilience::{CircuitBreaker, RateLimiter, RetryPolicy};

#[tokio::main]
async fn main() {
    let breaker = CircuitBreaker::new(CircuitBreakerConfig {
        failure_threshold: 5,
        success_threshold: 3,
        timeout: Duration::from_secs(30),
    });
    
    let limiter = RateLimiter::new(RateLimiterConfig {
        max_requests: 100,
        window: Duration::from_secs(1),
    });
    
    let result = breaker.call(|| async {
        limiter.acquire().await?;
        external_service_call().await
    }).await;
}

熔断器状态

状态 说明
Closed 正常状态,请求正常通过
Open 熔断状态,请求直接失败
HalfOpen 半开状态,允许部分请求通过测试

重试策略

let retry = RetryPolicy::exponential_backoff(3, Duration::from_millis(100));
let result = retry.execute(|| async {
    unreliable_service().await
}).await;