OpenFeign入門
什麼是 OpenFeign?
OpenFeign是一個遠端訪問的元件,用於兩個微服務之間互相訪問的中介軟體
OpenFeign使用步驟
1.新增OpenFeign的依賴
<!-- 加入OpenFeign的依賴 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
2.在啟動類上新增@EnableFeignClients開啟OpenFeign的功能支援
3.編寫OpenFeign的客戶端
建立一個介面,使用@FeignClient標記,其value屬性設定遠端訪問的服務的服務名(註冊到nacos註冊中心的名字),同樣可以設定降級操作,防止雪崩效應,兩種方法設定降級操作,返回兜底值fallback和fallbackfactory
//指定註冊到nacos註冊中心的微服務名value ="spzx-product"
//設定降級操作fallbackFactory = RemoteCategoryServiceFactory.class,設定熔斷工廠,返回兜底值
@FeignClient(value ="spzx-product",fallbackFactory = RemoteCategoryServiceFactory.class)
public interface RemoteCategoryService {
@GetMapping("/category/remoteGetFirstProductCatepory/{parentId}")
//需要在形參上指定引數的value,否則有時候遠端訪問會報錯@PathVariable(value = "parentId")
R<List<CategoryVo>> remoteGetFirstProductCatepory(@PathVariable(value = "parentId") Long parentId);
}
注意
遠端訪問時,若引數為實體類型別、map,此時以json的格式進行傳輸的,
因此遠端訪問的服務中相對應的控制器方法的引數和OpenFeign的介面中相對應的方法需要使用@RequestBody註解標記形參