一、核心差异对比
1.1 架构设计差异
维度 |
Hystrix |
Resilience4j |
隔离机制 |
强制依赖线程池隔离 |
支持信号量/Virtual Thread |
模块耦合度 |
熔断、降级、线程池高度耦合 |
模块化设计(熔断、限流、重试独立) |
资源消耗 |
高(线程池维护开销) |
低(无额外线程切换) |
配置方式 |
集中式配置 |
声明式分层配置 |
异常处理 |
统一视为失败 |
支持异常白名单/黑名单 |
状态转换 |
固定时间窗口 |
支持自动/手动状态切换 |
社区支持 |
已停止维护(2018) |
持续更新(2023活跃) |
1.2 性能指标对比
场景 |
Hystrix QPS |
Resilience4j QPS |
资源消耗比 |
低并发(100/s) |
9200 |
10500 |
1:0.8 |
高并发(5000/s) |
6800 |
9800 |
1:0.6 |
故障恢复时间 |
1200ms |
800ms |
- |
二、配置参数全解析
2.1 Hystrix核心配置(YAML)
hystrix:
command:
default:
execution:
isolation:
strategy: THREAD # 隔离策略
thread:
timeoutInMilliseconds: 3000 # 超时阈值
circuitBreaker:
requestVolumeThreshold: 20 # 触发计算的请求阈值
errorThresholdPercentage: 50 # 错误率阈值(%)
sleepWindowInMilliseconds: 5000 # 熔断持续时间
metrics:
rollingStats:
timeInMilliseconds: 10000 # 统计窗口时长
healthSnapshot:
intervalInMilliseconds: 500 # 健康检查间隔
fallback:
enabled: true # 是否启用降级
关键参数说明表:
参数路径 |
类型 |
推荐值 |
作用说明 |
execution.isolation.strategy |
enum |
THREAD |
隔离策略(影响资源消耗) |
circuitBreaker.requestVolumeThreshold |
int |
20 |
10秒内触发熔断的最小请求数 |
metrics.rollingStats.timeInMilliseconds |
int |
10000 |
统计窗口时长(需≥10秒) |
fallback.enabled |
bool |
true |
必须开启才能执行降级逻辑 |
2.2 Resilience4j完整配置(YAML)
resilience4j:
circuitbreaker:
configs:
default:
failureRateThreshold: 60 # 失败率阈值(%)
slowCallRateThreshold: 30 # 慢调用率阈值(%)
slowCallDurationThreshold: 2s # 慢调用判定标准
slidingWindowType: TIME_BASED # 窗口类型
slidingWindowSize: 10 # 窗口大小(秒/次数)
minimumNumberOfCalls: 20 # 最小计算样本量
waitDurationInOpenState