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.配置檔案添加如下圖
3.定義一個接口添加FeignClient注解,聲明要遠端調用得服務名(所有服務名統一寫到公共類裡面了)
4.定義FeignController調用測試
5.啟動各個相關服務測試
注冊到注冊中心的服務
測試結果
既然Feign內建了Ribbon,如何使用呢?
其實在以上步驟完成之後就已經采用預設的輪詢負載均衡政策了,如果想換一種政策如何解決呢?(動動腦筋)
Feign也內建了Hystrix,又如何使用呢?
1.配置檔案添加如下内容開啟Hystrix功能
2.接口類上設定回調類
3.MyFallback類如下圖所示
服務熔斷如何擷取遠端服務異常資訊
1.接口類上注解參數修改如下圖
2.定義MyFallbackFactory類如下
3.啟動服務測試(略)
注意事項
SpringCloud對Feign進行了增強相容了SpringMVC的注解 ,我們在使用SpringMVC的注解時需要注意:
1feignClient傳回值為複雜對象時其類型必須有無參構造函數。