天天看點

Spring Cloud (十三)、Feign服務降級配置

基于Spring Cloud (十一)、Feign參數綁定我們進行進行Feign服務降級的實驗。

我們隻需要修改服務消費者fegin-consume工程。

一、在application.properties配置檔案中開啟Hystrix功能

#指定服務名稱
spring.application.name=feign-consumer
#端口号
server.port=9001
#開啟Hystrix功能
feign.hystrix.enabled=true

#指定服務注冊中心位址,多個注冊中心以,隔開
eureka.client.service-url.defaultZone=http://localhost:1111/eureka/
           

二、為Feign用戶端的定義接口編寫一個具體的接口實作類,比如為HelloService接口實作一個服務降級類HelloServicFallback,其中每個重寫方法的實作邏輯都可以用來定義相應的服務降級邏輯。具體如下:

@Component
public class HelloServiceFallback implements HelloService {
    @Override
    public String hello() {
        return "error";
    }

    @Override
    public String hello(String name) {
        return "error";
    }

    @Override
    public User hello(String name, Integer age) {
        return new User("未知",0);
    }

    @Override
    public String hello(User user) {
        return "error";
    }
}
           

 三、在服務綁定接口HelloService中,通過@FeignClient注解的failback屬性來指定對應的服務降級實作類。

@FeignClient(value = "hello-service",fallback = HelloServiceFallback.class)
@Service
public interface HelloService {
    @RequestMapping("/hello")
    String hello();

    @RequestMapping("/hello1")
    String hello(@RequestParam("name") String name);

    @RequestMapping("/hello2")
    User hello(@RequestHeader("name") String name, @RequestHeader("age") Integer age);

    @RequestMapping("/hello3")
    String hello(@RequestBody User user);

}
           

四、測試驗證

       我們來啟動eureka-service、fegin-consume,不啟動hello-service,通路http://localhost:9001/feign-consume2,得到以下内容,則證明服務降級實驗成功:

Spring Cloud (十三)、Feign服務降級配置

繼續閱讀