5.Hystrix-服務降級


所謂降級,就是當某個服務出現異常之后,服務器將不再被調用,此時服務端可以自己准備一個本地的fallback回調,返回一個缺省值。
這樣做,雖然服務水平下降,但好歹可用,比直接掛掉要強,當然這也要看適合的業務場景。

啟動類:

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);
    }
}

服務端代碼demo(客戶端請求服務端serverMethod方法時,如果服務端宕機或是serverMethod拋出異常,則將調用defaultFallback方法):

package com.odao.client.controller;

import com.netflix.hystrix.contrib.javanica.annotation.DefaultProperties;
import com.netflix.hystrix.contrib.javanica.annotation.HystrixCommand;
import org.springframework.web.bind.annotation.*;

@RestController
@DefaultProperties(defaultFallback = "defaultFallback")
public class FeignClientTestController {

    @HystrixCommand
    @GetMapping(value = "serverMethod")
    public String serverMethod() {
    /*throw new RuntimeException("異常了");*/
    return null; 
  }

  public String defaultFallback() {
    return "太擁擠了";
  }

pom:

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

 


免責聲明!

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



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