Java 发生HystrixTimeoutException时请求未中断

Java 发生HystrixTimeoutException时请求未中断,java,netflix-zuul,hystrix,Java,Netflix Zuul,Hystrix,我有一个简单的Eureka服务器、配置服务器、Zuul网关和一个在Eureka中注册的测试服务(下面称为aService)。 此外,还注册了FallbackProvider的一个实现,默认命令的timeoutin毫秒数为10000 我向一个服务发送了一个请求,在该服务中,将休眠15秒并每秒打印勾号。10秒后,发生HystrixTimeoutException并访问了我的自定义回退响应,但勾号仍会持续到15秒结束 很明显,我的问题是,为什么请求没有被中断?有人能解释一下hystrix和zuul在H

我有一个简单的Eureka服务器、配置服务器、Zuul网关和一个在Eureka中注册的测试服务(下面称为aService)。 此外,还注册了FallbackProvider的一个实现,默认命令的timeoutin毫秒数为10000

我向一个服务发送了一个请求,在该服务中,将休眠15秒并每秒打印勾号。10秒后,发生HystrixTimeoutException并访问了我的自定义回退响应,但勾号仍会持续到15秒结束

很明显,我的问题是,为什么请求没有被中断?有人能解释一下hystrix和zuul在HystrixTimeout之后做了什么吗

依赖项版本:

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-commons-dependencies</artifactId>
            <version>Edgware.SR2</version>
        </dependency>
        <dependency>
            <groupId>com.netflix.zuul</groupId>
            <artifactId>zuul-core</artifactId>
            <version>1.3.0</version>
        </dependency>
我的一些后备提供商:

@Component
public class ServerFallback implements FallbackProvider {

  @Override
  public String getRoute() {
    return "*";
  }

  @Override
  public ClientHttpResponse fallbackResponse() {
    // some logs
    return simpleClientHttpResponse();
  }

  @Override
  public ClientHttpResponse fallbackResponse(Throwable cause) {
    // some logs
    return simpleClientHttpResponse();
  }

}
``

将zuul与ribbon一起使用(默认)时,HytrixCommandProperties中的executionIsolationStrategy将被AbstractRibbonCommand覆盖,默认情况下为信号量。在此隔离策略中,请求不会立即中断。请参阅将zuul与ribbon一起使用(默认)时的,HytrixCommandProperties中的executionIsolationStrategy将被AbstractRibbonCommand覆盖,默认情况下它是信号量。在此隔离策略中,请求不会立即中断。请参阅

@Component
public class ServerFallback implements FallbackProvider {

  @Override
  public String getRoute() {
    return "*";
  }

  @Override
  public ClientHttpResponse fallbackResponse() {
    // some logs
    return simpleClientHttpResponse();
  }

  @Override
  public ClientHttpResponse fallbackResponse(Throwable cause) {
    // some logs
    return simpleClientHttpResponse();
  }

}
``