OpenFeign簡單使用

xxxLin發表於2024-11-03

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註解標記形參