關于feign:feign是一個僞RPC遠端調用的元件,預設內建了ribbon。
之前用 RestTemplate 跟 ribbon 完成遠端調用跟負載均衡的事,現在用預設內建了ribbon的feign完成。
用 RestTemplate 時 使用不同的調用位址,用feign時使用不同的接口對象與接口内的方法 比對不同的服務
使用:
1.pom檔案中引用依賴
2.application.properties 配置檔案中配置服務提供位址
3.建立一個接口,标注@FeignClient注解,value寫配置檔案中的服務名稱,方法标注@XXXMapping
4.啟動類上加上 @EnableFeignClient注解,basePackages要掃描到@FeignClient注解的類
5,直接@Autowired注入接口,直接使用接口中的方法,即可負載均衡調用遠端服務
以上是用戶端的做法,伺服器端要有一模一樣的方法實作。
另外一種方式,服務端提供一個api子產品裡面提供一個接口,提供一個@FeignClient接口 extends這個接口,及其他接口方法參數需要的實體,這個api子產品是要被用戶端與伺服器端共同依賴的。
然後,服務端其他子產品寫這個接口的實作類
用戶端引用服務端的api子產品,@EnableFeignClient注解掃描到api子產品中的@FeignClient注解的接口,然後直接注入接口,進行遠端調用