1. 程式人生 > 程式設計 >spring cloud hystrix 超時時間使用方式詳解

spring cloud hystrix 超時時間使用方式詳解

我們在使用後臺微服務的時候,各個服務之前會有很多請求和交叉業務。這裡會引起雪崩、超時等異常處理。SpringCloud Hystrix服務降級、容錯機治理使 hystrix 有很好的支援,引入後實現斷路器功能。

1:pom引入jar包

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

2:添加註解

Application中增加 @EnableCircuitBreaker 開啟hystrix功能

3:配置檔案配置

注意:feign中的hystrix的enabled屬性要設定true

hystrix:
 command:
  transferApprove: # 這裡是要設定超時時間的方法,如新增其他方法需要增加此節點資訊。
   execution:
    isolation:
     thread:
      timeoutInMilliseconds: 6000 #預設連線超時時間是1秒

4:增加程式碼

程式碼注意fastOrBatchFallback的出參和入參要和設定了@HystrixCommand註解方法一致,否則會丟擲異常。

 @Override
  @HystrixCommand(fallbackMethod = "fastOrBatchFallback")
  public ResultModel transferApprove(TransferApproveDto dto) {
    log.info("調動流程審批:{}",dto);
    if (StringUtils.isEmpty(dto.getOperatorId())
        || StringUtils.isEmpty(dto.getFlowNos())
        || StringUtils.isEmpty(dto.getOperatorId())) {
      return ResultModel.fail(-1,"引數異常");
    }
  }
 
 
  public ResultModel fastOrBatchFallback(TransferApproveDto transferApproveDto) {
    log.info("請求ps服務超時,請稍後再試.入參:{}",GsonUtils.toJsonString(transferApproveDto));
    return ResultModel.fail("請求服務超時,請稍後再試","ps服務超時,請稍後再試");
  }

5: 待解決和研究問題?

hystrix 執行了Fallback之後是否繼續走其他邏輯,目前可知的是繼續走其他邏輯,如果讓它不觸發後序的邏輯怎麼配置?

這裡先打一個問號,歡迎大家一起討論和解決。

到此這篇關於spring cloud hystrix 超時時間使用方式的文章就介紹到這了,更多相關spring cloud超時時間內容請搜尋我們以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援我們!