6.Hystrix-超時設置


由於客戶端請求服務端方法時,服務端方法響應超過1秒將會觸發降級,所以我們可以配置Hystrix默認的超時配置

如果我們沒有配置默認的超時時間,Hystrix將取default_executionTimeoutInMilliseconds作為默認超時時間

this.executionTimeoutInMilliseconds = getProperty(propertyPrefix, key, "execution.isolation.thread.timeoutInMilliseconds", builder.getExecutionIsolationThreadTimeoutInMilliseconds(), default_executionTimeoutInMilliseconds)

1.代碼中修改默認超時配置(改為3秒):

@HystrixCommand(commandProperties = {
     @HystrixProperty(name = "execution.isolation.thread.timeoutInMilliseconds",value = "3000")
})
public String serverMethod() {
  return null;
}
2.application.properties中設置默認超時時間:
1.默認:(方法上記得要加上@HystrixCommand,否則無效):
hystrix.command.default.execution.isolation.thread.timeoutInMilliseconds=3000

2.配置具體方法的超時時間
hystrix.command.serverMethod.execution.isolation.thread.timeoutInMilliseconds=3000

3.啟動類:

package com.wangfajun;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.SpringCloudApplication;
import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

//@SpringBootApplication
//@EnableDiscoveryClient
//@EnableCircuitBreaker //開啟斷路器
@SpringCloudApplication
public class FajunClientTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(FajunClientTestApplication.class, args);
    }
}

4.pom:

<!--hystrix-->
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-hystrix</artifactId>
</dependency>


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM