欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

SpringCloud服務接口調用OpenFeign及使用詳解

 更新時間:2023年04月01日 10:39:09   作者:賊愛學習的小黃  
這篇文章主要介紹了SpringCloud服務接口調用——OpenFeign,在學習Ribbon時,服務間調用使用的是RestTemplate+Ribbon實現(xiàn),而Feign在此基礎上繼續(xù)進行了封裝,使服務間調用變得更加方便,需要的朋友可以參考下

OpenFeign簡介

Feign是一個聲明式的Web服務客戶端,讓編寫Web服務客戶端變得非常容易,只需創(chuàng)建一個接口并在接口上添加注解即可。

在學習Ribbon時,服務間調用使用的是RestTemplate+Ribbon實現(xiàn),而Feign在此基礎上繼續(xù)進行了封裝,使服務間調用變得更加方便。

而OpenFeign可以理解為Feign的升級版。

OpenFeign使用

OpenFeign應用在消費端,服務端不需要做任何改變

創(chuàng)建一個新的消費端cloud-consumer-feign-order80,首先引入相關依賴,引入OpenFeign以后,可以看到OpenFeign內置了Ribbon,所以他底層實現(xiàn)負載均衡還是依賴于Ribbon


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

    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
    </dependency>

    <dependency>
        <groupId>com.yellowstar.springcloud</groupId>
        <artifactId>cloud-api-commons</artifactId>
        <version>1.0-SNAPSHOT</version>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

編寫配置文件

server.port=80

eureka.client.register-with-eureka=false
eureka.client.service-url.defaultZone=http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka  

在啟動類上添加如下注解

@EnableFeignClients

對于OpenFeign來說,服務間的調用需要在消費端創(chuàng)建一個接口,這個接口類似于服務端

@Component
@FeignClient(value = "CLOUD-PAYMENT-SERVICE")
public interface PaymentFeignService {
    @GetMapping("/payment/get/{id}")
    CommonResult<Payment> getPayment(@PathVariable("id") int id);
}

OpenFeign超時控制

默認情況下,OpenFeign調用方法,會給該方法一秒鐘的執(zhí)行時間,如果一秒鐘之后沒有執(zhí)行完方法,則直接報錯。而OpenFeign底層調用的Ribbon,也就是說我們需要設置Ribbon服務間調用的等待時間

#指的是建立連接所用的時間,適用于網絡狀況正常的情況下,兩端連接所用的時間
ribbon.ReadTimeout=5000l
#指的是建立連接后從服務器讀取到可用資源所用的時間
ribbon.ConnectTimeout=5000

如果不設置,會報一下錯誤

OpenFeign日志

OpenFeign在調用http請求時,可以將請求的日志完整的打印出來,有以下幾種日志級別,默認是無日志。

  • NONE:默認的,不顯示任何日志;
  • BASIC:僅記錄請求方法、URL、響應狀態(tài)碼及執(zhí)行時間;
  • HEADERS:除了 BASIC 中定義的信息之外,還有請求和響應的頭信息;
  • FULL:除了 HEADERS 中定義的信息之外,還有請求和響應的正文及元數(shù)據(jù)。

首先需要對Feign的日志級別進行配置

@Configuration
public class FeignConfig {
    @Bean
    Logger.Level feignLoggerLevel() {
        return Logger.Level.FULL;
    }
}

添加配置文件

# feign日志以什么級別監(jiān)控哪個接口
logging.level.com.yellowstar.springcloud.service.PaymentFeignService=debug

接下來就可以觀察http請求的完整信息了

到此這篇關于SpringCloud服務接口調用——OpenFeign的文章就介紹到這了,更多相關SpringCloud OpenFeign服務調用內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Java開發(fā)中的23種設計模式詳解(推薦)

    Java開發(fā)中的23種設計模式詳解(推薦)

    本篇文章主要介紹了Java開發(fā)中的23種設計模式詳解,現(xiàn)在分享給大家,也給大家做個參考。感興趣的小伙伴們可以參考一下。 設計模式(Design Patterns)
    2016-11-11
  • Spring中@Configuration注解的使用場景

    Spring中@Configuration注解的使用場景

    這篇文章主要介紹了Spring中@Configuration注解的使用場景,@Configuration注解是從Spring?3.0版本開始加入的一個使Spring能夠支持注解驅動開發(fā)的標注型注解,主要用于標注在類上,需要的朋友可以參考下
    2023-11-11
  • Java必會的Synchronized底層原理剖析

    Java必會的Synchronized底層原理剖析

    synchronized作為Java程序員最常用同步工具,很多人卻對它的用法和實現(xiàn)原理一知半解,以至于還有不少人認為synchronized是重量級鎖,性能較差,盡量少用。但不可否認的是synchronized依然是并發(fā)首選工具,本文就來詳細講講
    2022-10-10
  • javaDSL簡單實現(xiàn)示例分享

    javaDSL簡單實現(xiàn)示例分享

    DSL領域定義語言,用來描述特定領域的特定表達。比如畫圖從起點到終點;路由中的從A到B。這是關于畫圖的一個簡單實現(xiàn)
    2014-03-03
  • Spring中實現(xiàn)定時調度的幾種方法

    Spring中實現(xiàn)定時調度的幾種方法

    本篇文章主要介紹了Spring中實現(xiàn)定時調度示例,可以在無人值守的時候系統(tǒng)可以在某一時刻執(zhí)行某些特定的功能,有興趣的可以了解一下。
    2017-02-02
  • java 如何將多種字符串格式 解析為Date格式

    java 如何將多種字符串格式 解析為Date格式

    這篇文章主要介紹了java 如何將多種字符串格式 解析為Date格式的操作,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-08-08
  • IDEA創(chuàng)建SpringBoot父子Module項目的實現(xiàn)

    IDEA創(chuàng)建SpringBoot父子Module項目的實現(xiàn)

    本文主要介紹了IDEA創(chuàng)建SpringBoot父子Module項目的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-05-05
  • Spring中的spring.factories文件用法(Spring如何加載第三方Bean)

    Spring中的spring.factories文件用法(Spring如何加載第三方Bean)

    這篇文章主要介紹了Spring中的spring.factories文件用法(Spring如何加載第三方Bean),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2021-10-10
  • SpringBoot2.3集成ELK7.1.0的示例代碼

    SpringBoot2.3集成ELK7.1.0的示例代碼

    這篇文章主要介紹了SpringBoot2.3集成ELK7.1.0的示例代碼,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2020-08-08
  • Mybatis-plus插入后返回元素id的問題

    Mybatis-plus插入后返回元素id的問題

    這篇文章主要介紹了Mybatis-plus插入后返回元素id的問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-03-03

最新評論