【OpenFeign常用配置】

OpenFeign常用配置

    • 快速入門:
      • 1、引入依賴
      • 2、啟用OpenFeign
    • 實踐
      • 1、引入依賴
      • 2、開啟連接池功能
      • 3、模塊劃分
      • 4、日志
      • 5、重試

快速入門:

OpenFeign

OpenFeign是一個聲明式的http客戶端,是spring cloud在eureka公司開源的feign基礎上改造而來。其作用及時基于springmvc的常見注解,幫我們優雅的實現http請求的發送。
以下配置都是基于各自項目基礎上的,因此這里不會將所有配置都羅列出來,取決于各自項目配置。

OpenFeign已經被SpringCloud自動裝配,實現起來比較簡單:

1、引入依賴

包括OpenFeign和負載均衡組件SpringCloudLoadbalancer,版本問題都在頂級pom文件定義,此處不在展示

<!--OpenFeign-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<!--負載均衡-->
<dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-loadbalancer</artifactId>
</dependency>

2、啟用OpenFeign

通過@EnableFeignClients注解,啟用OpenFeign功能,例如Gateway模塊啟動類

說明:
basePackages:指定OpenFeign接口路徑
defaultConfiguration:指定OpenFeign配置類,具體查看項目源碼

實踐

OpenFeign對http請求做了優雅的偽裝,不過其底層發起http請求,依賴于其它的框架。這些框架可以自己選擇,包括以下三種:
HttpURLConnection:默認實現,不支持連接池
Apache HttpClient:支持連接池
OKHttp:支持連接池
具體源碼可參考FeignBlockingLoadBalancerClient類中的delegate成員變量。

整合,OpenFeign整合OKHttp的步驟如下:

1、引入依賴

在快速入門的基礎上引入以下依賴使用連接池

<!--okhttp-->
<dependency><groupId>io.github.openfeign</groupId><artifactId>feign-okhttp</artifactId>
</dependency>

2、開啟連接池功能

在這里插入圖片描述

3、模塊劃分

單獨增加存放遠程調用接口模塊 edu-api
在這里插入圖片描述
需要在對應業務模塊引入且啟動類需要增加包路徑指定(包路徑一致可忽略),否則啟動報錯,例如在gateway網關模塊pom文件引入

<!--edu-api模塊-->
<dependency><groupId>com.xxw.itsx</groupId><artifactId>edu-api</artifactId><version>1.0-SNAPSHOT</version>
</dependency>

當定義的FeignClient不在SpringBootApplication的掃描包范圍時,這些FeignClient無法使用,有兩種方案解決:
方案一:指定FeignClient所在包
在這里插入圖片描述

方式二:指定FeignClient字節碼
在這里插入圖片描述

4、日志

OpenFeign只會在FeignClient所在包的日志級別為debug時,才會輸出日志。而且其日志級別由4級:
NONE:不記錄任何日志信息,這是默認值

BASIC:僅記錄請求的方法,URL以及響應狀態碼和執行時間

HEADERS:在BASIC的基礎上,額外記錄了請求和響應頭的信息

FULL:記錄所有請求和響應的明細,包括頭信息、請求體、元數據

備注:由于Feign默認的日志級別時NONE,所以默認我們看不到請求日志。

要自定義日志級別需要聲明一個類型為Logger.Level的Bean,在其中定義日志級別:
在這里插入圖片描述

此時這個bean并未生效,在對應的類沒有加配置類注解,要想配置某個FeignClient的日志,可以直接在@FeignClient注解中聲明
在這里插入圖片描述

如果想要全局配置,讓所有FeignClient都按照這個日志配置,則需要在@EnableFeignClients注解中聲明
在這里插入圖片描述

5、重試

重試配置,額外增加一個bean即可,如下
在這里插入圖片描述

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/696875.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/696875.shtml
英文地址,請注明出處:http://en.pswp.cn/news/696875.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

C++ template-2

第 5 章 基礎技巧 5.1 typename 關鍵字 關鍵字typename在C標準化過程中被引入進來&#xff0c;用來澄清模板內部的一個標識符代表的 是某種類型&#xff0c;而不是數據成員。考慮下面這個例子&#xff1a; template<typename T> class MyClass { public:void foo() {t…

【代碼隨想錄算法訓練營Day09】28.實現 strStr(); 459.重復的子字符串

文章目錄 Day 9 第四章 字符串part0228. 實現 strStr() &#xff08;本題可以跳過&#xff09;KMP 思路KMP 代碼 459.重復的子字符串 &#xff08;本題可以跳過&#xff09;字符串總結雙指針回顧 Day 9 第四章 字符串part02 今日任務 28.實現 strStr(); 459.重復的子字符串; 字…

題目:C++快速找到未知長度單鏈表的中間節點。普通方法和高級方法2種解題思路解析。

在數據結構的面試中&#xff0c;經常會出現這樣的問題&#xff1a;如何快速找到未知長度單鏈表的中間節點&#xff1f;通常&#xff0c;面試官會期待你提供兩種解法&#xff1a;一種是最基本的普通方法&#xff0c;另一種是更高效的 advanced 方法。本文將詳細介紹這兩種方法。…

Nginx -2

接著上文寫 5.4.7 驗證模塊 需要輸入用戶名和密碼 模塊名稱&#xff1a;ngx_http_auth_basic_module 訪問控制基于模塊 ngx_http_auth_basic_module 實現&#xff0c;可以通過匹配客戶端資源進行限制 語法&#xff1a; Syntax: auth_basic string | off; Default: auth_ba…

威爾金森功分器基本原理學習筆記

威爾金森功分器基本原理 威爾金森功率分配器的功能是將輸入信號等分或不等分的分配到各個輸出端口&#xff0c;并保持相同輸出相位。環形器雖然有類似功能&#xff0c;但威爾金森功率分配器在應用上具有更寬的帶寬。微帶形功分器的電路結構如圖所示&#xff0c;其中&#xff0…

【OpenAI Sora】何時開放使用?付費課程已上線(sora什么時候開放使用 )

Sora何時開放使用 根據提供的信息&#xff0c;Sora目前還未對廣大用戶開放。OpenAI在2024年2月15日展示了Sora的視頻&#xff0c;但沒有設立等待名單或提供API訪問。Sora仍在開發中&#xff0c;正在接受安全測試&#xff0c;并且尚未向公眾開放使用。 付費課程已上線 根據最…

Vue圖片瀏覽組件v-viewer,支持旋轉、縮放、翻轉等操作

Vue圖片瀏覽組件v-viewer&#xff0c;支持旋轉、縮放、翻轉等操作 之前用過viewer.js&#xff0c;算是市場上用過最全面的圖片預覽。v-viewer&#xff0c;是基于viewer.js的一個圖片瀏覽的Vue組件&#xff0c;支持旋轉、縮放、翻轉等操作。 基本使用 安裝&#xff1a;npm安裝…

費舍爾FISHER金屬探測器探測儀維修F70

美國FISHER LABS費舍爾地下金屬探測器&#xff0c;金屬探測儀等維修&#xff08;考古探金銀銅探寶等儀器&#xff09;。 費舍爾F70視聽目標ID金屬探測器&#xff0c;Fisher 金屬探測器公司成立于1931年&#xff0c;在實驗條件很艱苦的情況下&#xff0c;研發出了地下金屬探測器…

【Python】實現一個類似于Glass2k的Windows窗口透明化軟件

一 背景說明 網上看到一款Windows下的窗口透明化工具Glass2k&#xff08;Glass2k官網&#xff09;&#xff0c;可以簡單地通過快捷鍵實現任意窗口的透明化&#xff0c;還挺方便的&#xff0c;想用Python自己實現一下類似的功能。 軟件已經開源到&#xff1a;窗口透明化小工具開…

【Leetcode】889. 根據前序和后序遍歷構造二叉樹

文章目錄 題目思路代碼結果 題目 題目鏈接 給定兩個整數數組&#xff0c;preorder 和 postorder &#xff0c;其中 preorder 是一個具有 無重復 值的二叉樹的前序遍歷&#xff0c;postorder 是同一棵樹的后序遍歷&#xff0c;重構并返回二叉樹。 如果存在多個答案&#xff0c;…

CSS基礎屬性

【三】基礎屬性 【1】高度和寬度 &#xff08;1&#xff09;參數 width&#xff08;寬度&#xff09;&#xff1a;用于設置元素的寬度。可以使用具體的數值&#xff08;如像素值&#xff09;或百分比來指定寬度。 height&#xff08;高度&#xff09;&#xff1a;用于設置元…

Kubernetes 卷存儲 NFS | nfs搭建配置 原理介紹 nfs作為存儲卷使用

目錄 1、NFS介紹2、NFS服務部署2.1安裝nfs服務 (服務端配置)2.2啟動NFS服務2.3 服務檢查2.4 客戶端配置 3、nfs作為存儲卷使用3.1 nfs作為volume3.2 nfs存儲的缺點3.3 nfs作為PersistentVolum 4、nfs作為動態存儲提供5、總結 1、NFS介紹 NFS&#xff08;Network File System&a…

4.pom文件介紹Maven常用命令

1.pom.xml文件介紹. 1.1project標簽和modelVersion標簽介紹. pom.xml文件是maven的核心文件&#xff0c;POM(Project Object Model&#xff0c;項目對象模型)定義了項目的基本信息&#xff0c;用于描述如何構建&#xff0c;聲明項目依賴;&#xff1b; 1.2依賴坐標介紹. 依賴的…

得物面試:Kafka消息0丟失,如何實現?

得物面試&#xff1a;Kafka消息0丟失&#xff0c;如何實現&#xff1f; 尼恩說在前面 在40歲老架構師 尼恩的讀者交流群(50)中&#xff0c;最近有小伙伴拿到了一線互聯網企業如得物、阿里、滴滴、極兔、有贊、希音、百度、網易、美團的面試資格&#xff0c;遇到很多很重要的面…

新版Java面試專題視頻教程——多線程篇②

新版Java面試專題視頻教程——多線程篇② 0. 問題匯總0.1 線程的基礎知識0.2 線程中并發安全0.3 線程池0.4 使用場景 1.線程的基礎知識2.線程中并發鎖3.線程池3.1 說一下線程池的核心參數&#xff08;線程池的執行原理知道嘛&#xff09;3.2 線程池中有哪些常見的阻塞隊列Array…

高級語言期末2014級A卷

1.編寫函數 int delarr(int a[] ,int n)&#xff0c;刪除有n個元素的正整型數組a中所有素數&#xff0c;要求&#xff1a; 1&#xff09;數組a中剩余元素保持原來次序&#xff1b; 2&#xff09;將處理后的數組輸出&#xff1b; 3&#xff09;函數值返回剩余元素個數&#xff1…

MySQL索引面試題(高頻)

文章目錄 前言什么時候需要&#xff08;不需要&#xff09;)使用索引&#xff1f;有哪些優化索引的方法前綴索引優化索引覆蓋優化索引失效場景 總結 前言 今天來講一講 MySQL 索引的高頻面試題。主要是針對前一篇文章 MySQL索引入門&#xff08;一文搞定&#xff09;進行查漏補…

虛擬機的內存結構

一、摘要 熟悉 Java 語言特性的同學都知道&#xff0c;相比 C、C 等編程語言&#xff0c;Java 無需通過手動方式回收內存&#xff0c;內存中所有的對象都可以交給 Java 虛擬機來幫助自動回收&#xff1b;而像 C、C 等編程語言&#xff0c;需要開發者通過代碼手動釋放內存資源&…

MedicalGPT 訓練醫療大模型,實現了包括增量預訓練、有監督微調、RLHF(獎勵建模、強化學習訓練)和DPO(直接偏好優化)

MedicalGPT 訓練醫療大模型&#xff0c;實現了包括增量預訓練、有監督微調、RLHF(獎勵建模、強化學習訓練)和DPO(直接偏好優化)。 MedicalGPT: Training Your Own Medical GPT Model with ChatGPT Training Pipeline. 訓練醫療大模型&#xff0c;實現了包括增量預訓練、有監督微…

Linux第63步_為新創建的虛擬機添加必要的目錄和安裝支持linux系統移植的軟件

1、創建必要的目錄 1)、創建“/home/zgq/linux/”目錄 打開終端&#xff0c;進入“/home/zgq/”目錄 輸入“mkdir linux回車”&#xff0c;創建“/home/zgq/linux/”目錄 輸入“ls回車”&#xff0c;列舉“/home/zgq/”目錄的所有文件和文件夾 創建好“/home/zgq/linux/”…