Hystrix:无法使断路器跳闸
Hystrix: cannot trip circuit breaker
假设我使用默认的 Hystrix 配置:
CircuitBreakerRequestVolumeThreshold=20
CircuitBreakerErrorThresholdPercentage=50
MetricsRollingStatisticalWindowInMilliseconds=10000ms
我假设这意味着在 10 秒内 window,如果在 20 个连续请求中有 10 个已处理的异常,电路将中断。
我有一个名为 MyCommand 的 class,它扩展了 HystrixCommand。我创建了它的 20 个对象并依次调用每个对象的执行。但我似乎没有触发电路,因为它永远不会进入我的 getFallback 方法。我预计第 20 次执行会使电路跳闸。我哪里错了?
int i=0;
public MyObject run() throws Exception {
i++;
try {
throw new Exception("Handled exception "+i);
} catch (Exception e) {
System.out.print("Catch "+i);
}
return null;
}
如果您在命令中处理异常,则断路器将不会打开。在你的 运行 方法中不要捕获异常。
假设我使用默认的 Hystrix 配置:
CircuitBreakerRequestVolumeThreshold=20
CircuitBreakerErrorThresholdPercentage=50
MetricsRollingStatisticalWindowInMilliseconds=10000ms
我假设这意味着在 10 秒内 window,如果在 20 个连续请求中有 10 个已处理的异常,电路将中断。
我有一个名为 MyCommand 的 class,它扩展了 HystrixCommand。我创建了它的 20 个对象并依次调用每个对象的执行。但我似乎没有触发电路,因为它永远不会进入我的 getFallback 方法。我预计第 20 次执行会使电路跳闸。我哪里错了?
int i=0;
public MyObject run() throws Exception {
i++;
try {
throw new Exception("Handled exception "+i);
} catch (Exception e) {
System.out.print("Catch "+i);
}
return null;
}
如果您在命令中处理异常,则断路器将不会打开。在你的 运行 方法中不要捕获异常。