天天看點

SpringCloud-Feign的了解與應用

Feign

簡介

Spring Cloud引入Feign并且內建了Ribbon實作用戶端負載均衡調用,Feign是一個輕量級的rest用戶端,簡化遠端調用,像調用本地方法一樣進行遠端調用,

Feign的使用步驟

1.引入坐标

<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-feign</artifactId>
    <version>1.4.6.RELEASE</version>
</dependency>
           

2.啟動類上配置注解@EnableFeignClients掃描,生成代理對象,注入IOC容器

@SpringBootApplication
@EnableFeignClients
public class FeignApplication {
    public static void main(String[] args) {
        SpringApplication.run(FeignApplication.class);
    }
}
           

3.配置檔案添加如下圖

SpringCloud-Feign的了解與應用

3.定義一個接口添加FeignClient注解,聲明要遠端調用得服務名(所有服務名統一寫到公共類裡面了)

SpringCloud-Feign的了解與應用
SpringCloud-Feign的了解與應用

4.定義FeignController調用測試

SpringCloud-Feign的了解與應用

5.啟動各個相關服務測試

注冊到注冊中心的服務

SpringCloud-Feign的了解與應用

測試結果

SpringCloud-Feign的了解與應用

既然Feign內建了Ribbon,如何使用呢?

其實在以上步驟完成之後就已經采用預設的輪詢負載均衡政策了,如果想換一種政策如何解決呢?(動動腦筋)

Feign也內建了Hystrix,又如何使用呢?

1.配置檔案添加如下内容開啟Hystrix功能

SpringCloud-Feign的了解與應用

2.接口類上設定回調類

SpringCloud-Feign的了解與應用

3.MyFallback類如下圖所示

SpringCloud-Feign的了解與應用

服務熔斷如何擷取遠端服務異常資訊

1.接口類上注解參數修改如下圖

SpringCloud-Feign的了解與應用

2.定義MyFallbackFactory類如下

SpringCloud-Feign的了解與應用

3.啟動服務測試(略)

注意事項

SpringCloud對Feign進行了增強相容了SpringMVC的注解 ,我們在使用SpringMVC的注解時需要注意:

1feignClient傳回值為複雜對象時其類型必須有無參構造函數。

繼續閱讀