(十)SpringCloud系列——openfeign的高級特性實戰內容介紹

前言

本節內容主要介紹一下SpringCloud組件中微服務調用組件openfeign的一些高級特性的用法以及一些常用的開發配置,如openfeign的超時控制配置、openfeign的重試機制配置、openfeign集成高級的http客戶端、openfeign的請求與響應壓縮功能,以及如何開啟openfeign的日志查看功能,便于我們更好的定位問題等。關于微服務集成開發openfeign的實戰內容,可參考作者的往期博客內容。

正文

OpenFeign的日志配置

①在openfeign的配置類中添加日志的bean配置

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

②在調用方的配置文件applicaton.yml中,配置openfeign的接口日志,這里配置的是debug級別的日志

③ 啟動微服務項目,查看openfeign的接口調用日志

OpenFeign的超時配置

①openfeign超時的全局配置,這里設置為5秒鐘,如果沒有配置,系統默認配置是60秒

@Bean
public Request.Options options() {return new Request.Options(60, TimeUnit.SECONDS, 60, TimeUnit.SECONDS, true);
}

?②在接口提供方打斷點,模擬接口響應超時,通過日志,我們可以確認超時配置是否已經生效

③在調用方的配置文件application.yml中針對不同微服務配置超時時間,該配置優先級高于全局的配置

feign:client:config:aiyundun-manager: #服務提供方connectTimeout: 3000  # 連接超時時間,單位為毫秒readTimeout: 3000  # 讀取超時時間,單位為毫秒

?④局部配置測試結果

OpenFeign的請求重試機制設置

①在配置類中配置重試策略,如果不配置,默認是不開啟重試策略

@Bean
public Retryer myRetryer()
{//最大請求次數為3(1+2),初始間隔時間為100ms,重試間最大間隔時間為1sreturn new Retryer.Default(500,1,3);
}

?②查看測試日志,間隔3秒鐘會嘗試重復調用,嘗試調用了三次

OpenFeign的請求響應的壓縮功能配置

①在調用方配置文件application.yml中配置openfeign請求和響應的壓縮功能

feign:client:config:aiyundun-manager: #服務提供方connectTimeout: 3000  # 連接超時時間,單位為毫秒readTimeout: 3000  # 讀取超時時間,單位為毫秒compression:request:enabled: truemin-request-size: 2048 #最小觸發壓縮的大小mime-types: text/xml,application/xml,application/json #觸發壓縮數據類型response:enabled: true

?②查看openfeign調用日志

OpenFeign替換默認的http請求客戶端

①添加httpclient5客戶端maven依賴配置

<!-- httpclient5-->
<dependency><groupId>org.apache.httpcomponents.client5</groupId><artifactId>httpclient5</artifactId><version>5.3</version>
</dependency>
<!-- OpenFeign 依賴 -->
<dependency><groupId>io.github.openfeign</groupId><artifactId>feign-core</artifactId><version>11.5</version>
</dependency>
<dependency><groupId>io.github.openfeign</groupId><artifactId>feign-httpclient</artifactId><version>11.5</version>
</dependency>

②在調用方的application.yml中開啟httpclient客戶端,默認就是開啟狀態,可跳過此步驟

③ 查看是否替換成功

結語

至此,關于openfeign的高級特性實戰內容介紹到這里就結束了,我們下期見。。。。。。

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

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

相關文章

論文閱讀-高效構建檢查點

論文標題&#xff1a;On Efficient Constructions of Checkpoints 摘要 高效構建檢查點/快照是訓練和診斷深度學習模型的關鍵工具。在本文中&#xff0c;我們提出了一種適用于檢查點構建的有損壓縮方案&#xff08;稱為LC-Checkpoint&#xff09;。LC-Checkpoint同時最大化了…

MFC中CString的MakeUpper使用方法

在MFC中&#xff0c;CString類提供了MakeUpper函數來將字符串中的字符全部轉換為大寫。MakeUpper函數沒有參數&#xff0c;它會直接修改原始的CString對象。 下面是一些示例代碼&#xff0c;演示了如何使用MakeUpper函數&#xff1a; CString str "Hello, World!"…

uniapp開發android原生插件

一、下載原生開發SDK Android 離線SDK - 正式版 | uni小程序SDK (dcloud.net.cn)、 https://nativesupport.dcloud.net.cn/AppDocs/download/android.html 將開發uniappa原生android的插件解壓到ben本地目錄&#xff0c;目錄結構如下&#xff1a; 接下就可以使用 UniPlugin-Hel…

【本科組冠名獎】2023年第八屆數維杯數學建模挑戰賽獲獎感言

美國大學生數學建模競賽已結束過半&#xff0c;現在又迎來了2024年第九屆數維杯國賽&#xff0c;準備參加今年數維杯國賽的同學&#xff0c;今天我們一起看看去年優秀的選手都有什么獲獎感言吧~希望能幫到更多熱愛數學建模的同學。據說文末在看點贊的大佬都會直沖國獎呢&#x…

實用Pycharm插件

Pycharm的離線安裝&#xff1a;https://plugins.jetbrains.com/ 需要根據對應的Pycharm/Goland版本選取所需的 對于實用的插件如下&#xff1a; 實時查看每一行的git blame信息&#xff1a; Gittoolbox 轉換IDE的英文為中文&#xff1a;Chinese IDE側格式化json字符串&#…

UE5 C++ TPS開發 學習記錄(八

這一次到了p19 完善了UI和寫了創建房間 MultiPlayerSessionSubsystem.h // Fill out your copyright notice in the Description page of Project Settings. #pragma once #include "CoreMinimal.h" #include "Subsystems/GameInstanceSubsystem.h" #in…

python基礎-基本數據類型深入-2.2

目錄 集合 集合的定義 集合操作 集合的內建函數 集合與內置函數 集合練習-1 集合練習-2 集合練習-3 集合 集合的定義 學習關于 Python 集的所有內容&#xff1b;如何創建它們、添加或刪除其中的元素&#xff0c;以及在 Python 中對集合執行的所有操作。 Python 中的集…

掌握Go語言:探索Go語言中的變量,靈活性與可讀性的完美結合(4)

想要編寫簡潔高效的Go語言代碼嗎&#xff1f;掌握變量的使用是關鍵&#xff01;Go語言的變量聲明方式多樣&#xff0c;包括var關鍵字和短變量聲明&#xff0c;同時支持類型推斷&#xff0c;讓代碼更加清晰易讀。 變量聲明方式 在Go語言中&#xff0c;變量的聲明方式有兩種&am…

少兒編程 中國電子學會C++等級考試一級歷年真題答案解析【持續更新 已更新82題】

C 等級考試一級考綱說明 一、能力目標 通過本級考核的學生&#xff0c;能對 C 語言有基本的了解&#xff0c;會使用順序結構、選擇結構、循環結構編寫程序&#xff0c;具體用計算思維的方式解決簡單的問題。 二、考核目標 考核內容是根據軟件開發所需要的技能和知識&#x…

Leetcode 3071. Minimum Operations to Write the Letter Y on a Grid

Leetcode 3071. Minimum Operations to Write the Letter Y on a Grid 1. 解題思路2. 代碼實現 題目鏈接&#xff1a;3071. Minimum Operations to Write the Letter Y on a Grid 1. 解題思路 這一題思路上也是比較直接的&#xff0c;就是首先找到這個Y字符&#xff0c;然后…

單詞規律00

題目鏈接 單詞規律 題目描述 注意點 pattern只包含小寫英文字母s只包含小寫英文字母和 ’ ’s不包含任何前導或尾隨對空格s中每個單詞都被 單個空格 分隔 解答思路 本題與上一次同構字符串類似&#xff0c;思路可以參照同構字符串 代碼 class Solution {public boolean …

工作流/任務卸載相關開源論文分享

decima-sim 概述&#xff1a; 圖神經網絡強化學習處理多工作流 用的spark的仿真環境&#xff0c;mit的論文&#xff0c;價值很高&#xff0c;高被引&#xff1a;663倉庫地址&#xff1a;https://github.com/hongzimao/decima-sim論文&#xff1a;https://web.mit.edu/decima/co…

企業財務規劃的未來:自動化智能化如何推動全面預算管理

隨著自動化和智能化對企業的影響日益明顯&#xff0c;了解和接受那些有可能改變企業財務規劃的技術變得愈發重要。新興技術是推動企業增長和業務生產的中堅力量。作為企業財務專業人員&#xff0c;熟悉技術能夠幫助他們了解企業的未來價值&#xff0c;從而更好的領導團隊。數智…

springboot支持的常用日志框架介紹

日志系統是計算機系統中用于記錄和跟蹤事件、錯誤和信息的軟件組件。在軟件開發和維護過程中&#xff0c;日志系統起著至關重要的作用。它可以幫助開發人員了解軟件的運行情況&#xff0c;快速定位和解決問題。本文將從以下幾個方面介紹日志系統&#xff1a;日志系統概述、Spri…

Mybatis plus拓展功能-枚舉處理器

目錄 1 前言 2 使用方法 2.1 在application.yml中添加配置 2.2 定義枚舉類 2.3 在實體類和賦值時中使用 1 前言 在我們的開發過程中&#xff0c;常常需要用一些數字來表示狀態。比如說&#xff1a;1-正常&#xff0c;0-凍結。然而這樣并不能做到見名知意&#xff0c;特別是…

HTML最強入門學習筆記+GitHub小項目源碼

HTML學習筆記 GitHub項目鏈接: 點我跳轉GitHub 本博客采用markdown編寫&#xff0c;上面這個鏈接跳轉就是采用了html的<a></a>的代碼設計的跳轉提示~ 1.創建文件可以使用 ! 在VSCode中進行快速補全從而生成一整個HTML結構 HTML組成 <!DOCTYPE html><htm…

vscode——遠端配置及一些問題解決

vscode——遠端配置 安裝Remote -SSH插件配置config本地變化一些問題缺失核心關閉vscode自動更新 嘗試寫入管道不存在hostname -I 查出來的ip連不上 我們之前大概了解了vscode的本地設置&#xff0c;我們之前提過&#xff0c;vscode是一款編輯器&#xff0c;在文本編輯方面有著…

Windows安裝Neo4j數據庫教程(3.X版本)

安裝java的jdk&#xff08;jdk1.8僅支持Neo4j 3.X版本&#xff09;去 Index of /doc/neo4j/ 下載目標版本的Windows zip安裝包將安裝包解壓到任意目錄&#xff0c;并記住解壓后帶版本號的文件夾路徑添加系統環境變量&#xff0c;變量名&#xff1a;NEO4J_HOME&#xff0c;變量值…

程序員的金三銀四求職寶典:如何在關鍵時期脫穎而出?

個人主頁&#xff1a;17_Kevin-CSDN博客 隨著春天的腳步漸近&#xff0c;程序員們的求職熱潮也隨之而來。在這個被稱為“金三銀四”的招聘季&#xff0c;如何從眾多求職者中脫穎而出&#xff0c;成為了許多程序員關注的焦點。本文將為你提供一份全面的求職寶典&#xff0c;助你…

前端架構: 腳手架通用框架封裝之CommonJS和ESM混合開發兼容解決(教程五)

CommonJS 和 ESModule 混合開發 接上文&#xff0c;仍舊在 abc-cli 項目中參考&#xff1a;https://blog.csdn.net/Tyro_java/article/details/136433159現在要在腳手架項目中安裝 chalk 依賴&#xff0c;因為在 abc-cli 項目幾乎都是 CommonJS的實現而 chalk 這個依賴源碼是基…