日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

服务调用之OpenFeign客户端工具使用

發布時間:2024/4/24 综合教程 68 生活家
生活随笔 收集整理的這篇文章主要介紹了 服务调用之OpenFeign客户端工具使用 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

一、什么是OpenFeign?

  要理解OpenFeign,先理解Feign。Feign是一個聲明式的WebService客戶端,她的目標是讓編寫JavaHttp客戶端更加容易。Spring Cloud對Feign進行了封裝,使其支持了Spring MNC標準注解和HttpMessageConverters。Feign可以與Eureka和Ribbon組合使用以支持負載均衡。之前的微服務常規調用是通過Ribbon+RestTemplate,在實際開發中,往往一個接口會被多處調用,所以我們需要把微服務調用模塊進行封裝,形成調用客戶端,Feign在此基礎上進行了封裝,它幫助我們完成對服務提供方的接口綁定,減化使用springcloudRibbon時自行封裝調用客戶端的開發量,我們只需要創建一個接口,通過在接口上添加注解來完成功能實現(類似Dao接口上使用@Mapper一樣)。

  Feign本身集成了Ribbon,實現了客戶端的負載均衡,而OpenFeign是SpringCloud在Feign的基礎上支持了SpringMVC注解,OpenFeign已經全面替代了Feign。OpenFeign的@FeignClient注解可以解析@RequestMapping注解的接口,動態代理產生實現類,在實現類中做負載均衡并調用微服務。由于OpenFeign的作用是服務調用,因此它使用在服務消費者中,而不是服務提供者中。

二、OpenFeign服務調用

  1、使用OpenFeign首先需要引入jar包,引入方式如下

<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>

  2、在主啟動類中增加@EnableFeignClients注解

  3、書寫業務邏輯接口,在接口上增加@FeignClient注解,例如:

@Component
@Feignclient(value = "CLOUD-PAYMENT-SERVICE")   /* value的值為要調用的微服務模塊的名稱,注意這里不要加http:// */
public interface PaymentFeignservice
{
   GetMapping(value = "/payment/get/id}")  /* value的值為服務模塊具體的控制器方法 */
   public commonResult<Payment> getPaymentById(@Pathvariable("id") Long id);
}

   注意:通常一個微服務就對應一個接口類,接口類中的方法對應微服務對外提供的方法。上面的代碼表示調用CLOUD-PAYMENT-SERVICE 服務的/payment/get/id方法。

  4、控制層調用以上封裝的接口,完成業務邏輯處理

@Component
public class orderFeigncontroller
{
@Resource
private PaymentFeignservice paymentFeignservice;
  @GetMapping(value = "/consumer/payment/get/{fid}")
  public commonResult<Payment> getPaymentById(@Pathvariable("id") Long id)
 {
    return paymentFeignservice.getPaymentById(id);
 }
}

三、OpenFeign超時控制

  服務調用一定會產生超時的情況,OpenFeign默認等待調用服務接口的超時時間是1秒,超過1秒后就會自己拋出超時錯誤。有些情況下我們根據需求需要調整超時等待時間,可以在yml配置文件中開啟配置,OpenFeign的超時時間設置是由集成的Ribbon來控制的,代碼如下

#設置feign客廣端超時時間(openFeign默認支持ribbon)
ribbon:
   #指的是建立連接所用的時間,適用于網絡狀況正常的情況下,兩端連接所用的時間
  ReadTimeout: 5000
   #指的是建立連接后從服務器讀取到可用資源所用的時問
  connectTimeout: 5000

四、OpenFeign日志增強管理功能

  Feign提供了日志打印功能,我們可以通過配置來調整日志級別,從而了解服務調用中http請求的細節,它提供了對Feign接口的調用情況進行監控和輸出的功能。

  1、日志級別說明:

      NONE-->默認,不顯示任何日志

      BASIC-->僅記錄請求方法、URL、響應狀態碼、執行時間

      HEADERS-->BASIC+請求頭信息+響應頭信息

      FULL-->HEADERS+請求和響應的正文及元數據

  2、配置日志打印功能:新建配置文件夾config,添加配置文件類FeignConfig,導入feign.Logger,寫入如下代碼

@Configuration
public class Feignconfig
{
   @Bean
   Logger.Level feignLoggerLevel()
  {
     return Logger.Leve1.FULL;  /* 表示開啟詳細日志 */
  }
}

  3、yml配置文件中,配置日志以什么級別來監控哪個接口(這里的級別不是1中的級別)。如下表示以dubug級別來監控PaymentFeignservice接口

logging:
 level:
    # feign日志以什么級別監控哪個接口
   com.atguigu.springcloud.service.PaymentFeignservice: debug

總結

以上是生活随笔為你收集整理的服务调用之OpenFeign客户端工具使用的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。