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

Spring Cloud 系列之服務調用 OpenFeign的實現(xiàn)

 更新時間:2020年11月06日 09:45:55   作者:Demo_Null  
這篇文章主要介紹了Spring Cloud 系列之服務調用 OpenFeign的實現(xiàn),需要的朋友可以參考下

1.1 簡介

 1.1.1 概述

  Feign 旨在使編寫 Java Http 客戶端變得更容易。在使用 Ribbon + RestTemplate 時,利用 RestTemplate 對 http 請求的封裝處理,形成了一套模版化的調用方法。但是在實際開發(fā)中,由于對服務依賴的調用可能不止一處,往往一個接口會被多處調用,所以通常都會針對每個微服務自行封裝一些客戶端類來包裝這些依賴服務的調用。所以,F(xiàn)eign 在 Ribbon 基礎上做了進一步封裝,由他來幫助我們定義和實現(xiàn)依賴服務接口的定義。在 Feign 的實現(xiàn)下,我們只需創(chuàng)建一個接口并使用注解的方式來配置它,即可完成對服務提供方的接口綁定,簡化了使用 Spring cloud Ribbon 時,自動封裝服務調用客戶端的開發(fā)量。與 Ribbon 不同的是,通過 Feign 只需要定義服務綁定接口且以聲明式的方法,優(yōu)雅而簡單的實現(xiàn)了服務調用
  Feign 已經(jīng)停止維護,OpenFeign 是 Spring Cloud 在 Feign 的基礎上進一步開發(fā)出來替代 Feign 的技術,支持了 SpringMVC 的注解,如 @RequesMapping 等等。OpenFeign 的 @FeignClient 可以解析 SpringMVC 的 @RequestMapping 注解下的接口,并通過動態(tài)代理的方式產(chǎn)生實現(xiàn)類,實現(xiàn)類中做負載均衡并調用其他服務。

1.1.2 相關依賴

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

1.2 簡單使用

1.2.1 基礎工程

eureka 項目

1.2.2 Feign 客戶端

/**
 * Created with IntelliJ IDEA.
 *
 * @author Demo_Null
 * @date 2020/11/5
 * @description Feign 接口
 */
@Component
@FeignClient("ProviderServer")	// 服務提者名稱
public interface ProviderFeign {

 @GetMapping("/provider/get")	// 服務地址
 public String get();
}

1.2.3 啟動類

@SpringBootApplication
@EnableFeignClients
public class ConsumerApplication {
 public static void main(String[] args) {
 SpringApplication.run(ConsumerApplication.class, args);
 }
}

1.2.4 調用服務

  我們可以發(fā)現(xiàn) Feign 自帶負載均衡配置,而 OpenFeign 默認支持 Ribbon,我們可以通過 Ribbon 的配置來修改負載均衡策略。Ribbon 詳情參考 ☞Spring Cloud 系列之負載均衡 Ribbon

在這里插入圖片描述

1.3 其他配置

 1.3.1 超時控制

# 設置 feign 客戶端超時時間, 默認 1s
feign:
 client:
 config:
 default:
 connectTimeout: 5000
 readTimeout: 5000


# OpenFeign 默認支持 Ribbon,也可以使用以下配置
ribbon:
 # 建立連接所用時間,適用于網(wǎng)絡正常的情況下,兩端連接所用的時間
 ConnectTimeout: 5000
 # 建立連接后從服務器讀取到可用資源所用的時間
 ReadTimeout: 5000

1.3.2 數(shù)據(jù)壓縮

feign:
 compression:
 request:
 # 開啟數(shù)據(jù)壓縮請求
 enabled: true
 # 壓縮數(shù)據(jù)類型
 mime-types: text/xml, application/xml, application/json
 # 數(shù)據(jù)壓縮下限 2048表示傳輸數(shù)據(jù)大于2048 才會進行數(shù)據(jù)壓縮(最小壓縮值標準)
 min-request-size: 2048
 # 開啟數(shù)據(jù)壓縮響應
 response:
 enabled: true

1.3.3 日志配置

☞ 日志級別

 ♞ NONE:不開啟日志(默認)
 ♞ BASIC:記錄請求方法、URL、響應狀態(tài)、執(zhí)行時間
 ♞ HEADERS:在 BASIC 基礎上增加請求/響應頭
 ♞ FULL:在 HEADERS 基礎上增加 body 和請求元數(shù)據(jù)

☞ 配置類

@Configuration
public class LogConfig {
 @Bean
 Logger.Level loggerLevel(){
 return Logger.Level.FULL;
 }
}

☞ 配置文件

logging:
 level:
 # 以什么級別監(jiān)控那個接口
 com.software.controller: debug

☞ 輸出

在這里插入圖片描述


☞ 源碼

到此這篇關于Spring Cloud 系列之服務調用 OpenFeign的實現(xiàn)的文章就介紹到這了,更多相關Spring Cloud服務調用 OpenFeign內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 基于springboot處理date參數(shù)過程解析

    基于springboot處理date參數(shù)過程解析

    這篇文章主要介紹了基于springboot處理date參數(shù)過程解析,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-12-12
  • 三種Spring BeanName生成器,你了解嗎

    三種Spring BeanName生成器,你了解嗎

    無論我們是通過 XML 文件,還是 Java 代碼,亦或是包掃描的方式去注冊 Bean,都可以不設置BeanName,而Spring均會為之提供默認的 beanName,本文我們就來看看 Spring 中三種處理不同情況的 beanName生成器吧
    2023-09-09
  • 使用IDEA創(chuàng)建servlet?JavaWeb?應用及使用Tomcat本地部署的實現(xiàn)

    使用IDEA創(chuàng)建servlet?JavaWeb?應用及使用Tomcat本地部署的實現(xiàn)

    本文主要介紹了使用IDEA創(chuàng)建servlet?JavaWeb?應用及使用Tomcat本地部署
    2022-01-01
  • 如何使用Java實現(xiàn)指定概率的抽獎

    如何使用Java實現(xiàn)指定概率的抽獎

    這篇文章主要給大家介紹了關于如何使用Java實現(xiàn)指定概率的抽獎的相關資料,Java抽獎程序的基本原理是通過隨機數(shù)生成器來實現(xiàn)隨機抽獎的功能,文中通過實例代碼介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • Java中HTTP GET方法調用帶有body的問題解決

    Java中HTTP GET方法調用帶有body的問題解決

    這篇文章主要為大家詳細介紹了Java如何解決HTTP GET方法調用帶有body的問題,文中的示例代碼講解詳細,感興趣的小伙伴可以參考一下
    2024-02-02
  • Java dbcp連接池基本使用方法詳解

    Java dbcp連接池基本使用方法詳解

    這篇文章主要介紹了Java dbcp連接池基本使用方法詳解,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-10-10
  • SpringBoot整合Quartz實現(xiàn)動態(tài)配置的代碼示例

    SpringBoot整合Quartz實現(xiàn)動態(tài)配置的代碼示例

    這篇文章將介紹如何把Quartz定時任務做成接口,實現(xiàn)以下功能的動態(tài)配置添加任務,修改任務,暫停任務,恢復任務,刪除任務,任務列表,任務詳情,文章通過代碼示例介紹的非常詳細,需要的朋友可以參考下
    2023-07-07
  • java實現(xiàn)的計算器功能示例【基于swing組件】

    java實現(xiàn)的計算器功能示例【基于swing組件】

    這篇文章主要介紹了java實現(xiàn)的計算器功能,結合實例形式分析了java基于swing組件實現(xiàn)計算器功能相關運算操作技巧,需要的朋友可以參考下
    2017-12-12
  • Java將對象寫入文件讀出_序列化與反序列化的實例

    Java將對象寫入文件讀出_序列化與反序列化的實例

    下面小編就為大家?guī)硪黄狫ava將對象寫入文件讀出_序列化與反序列化的實例。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-08-08
  • Spring中的@EnableScheduling定時任務注解

    Spring中的@EnableScheduling定時任務注解

    這篇文章主要介紹了Spring中的@EnableScheduling注解,@EnableScheduling是 Spring Framework 提供的一個注解,用于啟用 Spring 的定時任務功能,通過使用這個注解,可以在 Spring 應用程序中創(chuàng)建定時任務,需要的朋友可以參考下
    2024-01-01

最新評論