> For the complete documentation index, see [llms.txt](https://potoyang.gitbook.io/spring-in-action-v5/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://potoyang.gitbook.io/spring-in-action-v5/di-15-zhang-chu-li-shi-bai-he-shi-yan/15.2-ding-yi-duan-lu-qi/15.2.2-guan-li-duan-lu-qi-yu-zhi.md).

# 15.2.2 管理断路器阈值

默认情况下，如果断路器保护的方法被调用超过 20 次，如果超过 50% 的调用在 10 秒钟内失败，那么断路器将进入断开状态。所有后续调用都将由降级方法处理。经过 5 秒后，断路器进入半开状态，原方法将被再次尝试。

您可以通过设置 Hystrix 命令属性来调整失败和重试阈值。以下命令属性会影响断路器：

* `circuitBreaker.requestVolumeThreshold`——在给定的时间段内，方法应该被调用的次数。
* `circuitBreaker.errorThresholdPercentage`——给定时间段内，失败方法所占的百分比。
* `metrics.rollingStats.timeInMilliseconds`——考虑请求量和错误百分比的滚动时间段。
* `circuitBreaker.sleepWindowInMilliseconds`——断开状态持续多长时间进入半打开状态，以再次尝试调用原始失败方法。

在 `metrics.rollingState.timeInMilliseconds` 中指定的时间段内，如果 `circuitBreaker.requestVolumeThreshold` 和 `circuitBreaker.errorThresholdPercentage` 同时超过阈值，则断路器进入断开状态。在 `circuitBreaker.sleepWindowInMilliseconds` 指定的时间内保持断开状态。之后将变为半开状态，并再一次尝试最初的失败方法。

例如，假设要调整失败设置，方法的调用次数必须超过 30 次，并且在 20 秒内有超过 25% 的请求失败才触发。需要设置以下 Hystrix 命令属性：

```java
@HystrixCommand(
    fallbackMethod="getDefaultIngredients",
    commandProperties={
        @HystrixProperty(
            name="circuitBreaker.requestVolumeThreshold",
            value="30"),
        @HystrixProperty(
            name="circuitBreaker.errorThresholdPercentage",
            value="25"),
        @HystrixProperty(
            name="metrics.rollingStats.timeInMilliseconds",
            value="20000")
    })
public List<Ingredient> getAllIngredients() {
  // ...
}
```

此外，如果您决定一旦断开，断路器必须保持断开状态最多 1 分钟，然后转为半开状态，您可以这样设置 `circuitBreaker.sleepWindowInMilliseconds` 命令属性：

```java
@HystrixCommand(
    fallbackMethod="getDefaultIngredients",
    commandProperties={
        ...
        @HystrixProperty(
            name="circuitBreaker.sleepWindowInMilliseconds",
            value="60000")
    })
```

除了优雅地处理方法失败和延迟之外，Hystrix 还发布了应用程序中每个断路器的度量流。下一步，让我们看一看如何通过 Hystrix 流，来监控使用 Hystrix 的应用程序的健康状况。
