SpringCloud微服務之間如何進行用戶信息傳遞(涉及:Gateway、OpenFeign組件)

目錄

    • 1、想達到的效果
    • 2、用戶信息在微服務之間傳遞的兩種途徑
    • 3、用RuoYi-Cloud為例進行演示說明
      • (1)網關將用戶信息寫在請求頭中
      • (2)業務微服務之間通過OpenFeign進行調用,并且將用戶信息寫在OpenFeign準備的請求頭中
      • (3)當請求到達業務微服務時,攔截器會從請求中獲取用戶信息,并放在ThreadLocal中

1、想達到的效果

在業務微服務中通過工具類獲取當前用戶信息

2、用戶信息在微服務之間傳遞的兩種途徑

  1. 網關微服務(Gateway)往業務微服務傳遞用戶信息
  2. 業務微服務之間通過OpenFeign傳遞用戶信息

只要把上面兩處打通,然后業務微服務在通過攔截器獲取到用戶信息,之后再將用戶信息存在ThreadLocal中,這樣我們就可以實現業務為服務中通過工具類獲取當前用戶信息的效果了

直接上圖說明整體流程:

在這里插入圖片描述

3、用RuoYi-Cloud為例進行演示說明

說明:

  • RuoYi-Cloud:https://gitee.com/y_project/RuoYi-Cloud
  • 演示步驟:下面步驟以上圖為例進行演示

(1)網關將用戶信息寫在請求頭中

  • 代碼:AuthFilter.java類—filter方法
  • 具體位置截圖:
    在這里插入圖片描述

(2)業務微服務之間通過OpenFeign進行調用,并且將用戶信息寫在OpenFeign準備的請求頭中

  • 代碼:FeignRequestInterceptor類—apply方法
  • 具體位置截圖:
    在這里插入圖片描述

(3)當請求到達業務微服務時,攔截器會從請求中獲取用戶信息,并放在ThreadLocal中

  • 代碼:HeaderInterceptor類—preHandle方法
  • 具體位置截圖:
    在這里插入圖片描述

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

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

相關文章

香港站群服務器為什么適合seo優化?

?  香港站群為什么適合seo優化?本文主要從以下四點出發進行原因闡述。 1.香港站群服務器的優勢 2.香港站群服務器與國內服務器的對比 3.多IP站群服務器的優勢 4.香港站群服務器在SEO優化中的注意事項 1.香港站群服務器的優勢 香港站群服務器是為了滿足企業SEO優化需求而提供…

GD32F103VE使用DMA傳輸讀取內部溫度和參考電壓值

GD32F103VE使用DMA傳輸讀取內部溫度和參考電壓值。出廠CPU芯片不同,溫度誤差不同,不要糾結了。 GD32F103的ADC為12位AD轉換器,ADC轉換結果保存在16位數據寄存器中; 模擬輸入通道: 16個外部模擬輸入通道; 1個內部溫度傳感器通道(Vsense) 1個…

【electron】electron安裝過慢和打包報錯:Unable to load file:

文章目錄 一、安裝過慢問題:二、打包報錯:Unable to load file: 一、安裝過慢問題: 一直處于安裝過程 【解決】 #修改npm的配置文件 npm config edit#添加配置 electron_mirrorhttps://cdn.npm.taobao.org/dist/electron/二、打包報錯:Unable to load…

camera hal|如何學習一個新平臺

全網最具價值的Android Camera開發學習系列資料~ 作者:8年Android Camera開發,從Camera app一直做到Hal和驅動~ 歡迎訂閱,相信能擴展你的知識面,提升個人能力~ 我自己目前從事的是android camera hal 的工作,工作上接觸到的芯片平臺要么是高通的,要么是mtk的。 其實…

c語言作業

作業1: 關于實參和形參 形參是實參的一份臨時拷貝。 形參是在函數調用的時候才實例化,才開辟內存空間。 函數調用如果采用傳值調用,改變形象不影響實參。 改變形參不是影響實參。 作業2: 函數調用exec(&#xf…

C++QT教程3——手冊4.11.1自帶教程(筆記)——創建一個基于Qt Widget的應用程序

文章目錄 創建一個基于Qt Widget的應用程序創建Text Finder項目素材文件 填補缺失的部分設計用戶界面完成頭文件完成源文件創建資源文件 編譯和運行程序 參考文章 創建一個基于Qt Widget的應用程序 本教程介紹如何使用Qt Creator創建一個小型Qt應用程序,名為Text F…

電腦IP地址錯誤無法上網怎么辦?

電腦出現IP地址錯誤后就將無法連接網絡,從而無法正常訪問互聯網。那么當電腦出現IP地址錯誤時該怎么辦呢? 確認是否禁用本地連接 你需要先確定是否禁用了本地網絡連接,如果發現禁用,則將其啟用即可。 啟用方法:點擊桌…

Spring 使用注解開發、代理模式、AOP

使用注解開發 在Spring4之后&#xff0c;要使用注解開發&#xff0c;必須要保證AOP的包導入了 項目搭建&#xff1a; 在配置文件中導入約束&#xff0c;增加注解支持 <?xml version"1.0" encoding"UTF-8"?> <beans xmlns"http://www.spri…

uniapp把城市換成26個字母和城市排序

后端返回的數據 我們要得效果 <template><view><view v-for"(value,key) in cities" :key"key"><view style"color: red;"> {{ key }} </view><view style"border: 1rpx solid black;"><tex…

PostgreSql 備份恢復

一、概述 數據庫備份一般可分為物理備份和邏輯備份&#xff0c;其中物理備份又可分為物理冷備和物理熱備&#xff0c;下面就各種備份方式進行詳細說明&#xff08;一般情況下&#xff0c;生產環境采取的定時物理熱備邏輯備份的方式&#xff0c;均是以下述方式為基礎進一步研發編…

Linux 基礎

鞏固基礎&#xff0c;砥礪前行 。 只有不斷重復&#xff0c;才能做到超越自己。 能堅持把簡單的事情做到極致&#xff0c;也是不容易的。 linux的目錄結構 linux的文件系統采用樹狀的目錄結構&#xff0c;在此結構的最上層是根目錄“/”&#xff0c; 然后在此目錄下再創建其他…

【算法——雙指針】LeetCode 1089 復寫零

千萬不要被這道題標注著“簡單”迷惑了&#xff0c;實際上需要注意的細節很多。 題目描述&#xff1a; 解題思路&#xff1a; 正序遍歷&#xff0c;確定結果數組的最后一個元素所在的位置&#xff1b;知道最后一個元素的位置后倒序進行填充。 先找到最后一個需要復寫的數 先…

javaee dom4j讀取xml文件

引入jar包 dom4j-1.6.1.jar 創建xml文件 <?xml version"1.0" encoding"UTF-8"?> <books><book id"1"><title ID"t1">背影</title><price>88</price><author>三毛</author>…

Excel表格制作,快速提升效率好方法!

“作為一個剛開始工作的職場新人&#xff0c;每天要做各種不同的表格&#xff0c;真的讓我很崩潰&#xff0c;感覺我對這些表格制作一點都不了解&#xff0c;Excel表格制作有什么比較好的方法嗎&#xff1f;” Excel作為一款廣泛應用于各個領域的管理和分析工作&#xff0c;給我…

【STM32】FreeRTOS消息隊列和信號量學習

一、消息隊列&#xff08;queue&#xff09; 隊列是一種用于實現任務與任務之間&#xff0c;任務與中斷之間消息交流的機制。 注意&#xff1a;1.數據的操作是FIFO模式。 2.隊列需要明確數據的大小和隊列的長度。 3.寫和讀都會出現堵塞。 實驗&#xff1a;創建一個消息隊列…

解決 Oracle 數據庫中表被鎖問題的方案和方法

我們經常會遇到表被鎖的情況&#xff0c;這可能會嚴重影響數據庫的性能和可用性。我將與大家分享如何識別、分析和解決這些問題&#xff0c;以及如何使用特定的 SQL 查詢來執行解鎖操作。 了解表鎖的原因 首先&#xff0c;讓我們來了解一下導致表被鎖的常見原因。長時間運行的…

(四)Unity開發Vision Pro——參考文檔

4.參考文檔 4.1 支持的功能和組件 4.1.1 支持的 Unity 功能和組件 大多數 Unity 組件無需修改即可在此平臺上運行 - 包括大多數自定義 MonoBehaviours、動畫邏輯、物理、輸入處理、資產管理、AI 等。然而&#xff0c;需要渲染的組件需要特殊的支持。因此&#xff0c;一些組件…

qt5.15.2 使用mysql8.1

報錯&#xff1a; QMYSQL driver not loaded 報錯&#xff1a;無 QMYSQL 使用 QStringList drivers QSqlDatabase::drivers(); //獲取現在可用的數據庫驅動 foreach(QString driver, drivers) qDebug() << driver; “QSQLITE” “QMARIADB” “QMYSQL” “QMYSQL3” “…

Linux常用命令——dmidecode命令

在線Linux命令查詢工具 dmidecode 在Linux系統下獲取有關硬件方面的信息 補充說明 dmidecode命令可以讓你在Linux系統下獲取有關硬件方面的信息。dmidecode的作用是將DMI數據庫中的信息解碼&#xff0c;以可讀的文本方式顯示。由于DMI信息可以人為修改&#xff0c;因此里面…

網絡編程的使用

文章目錄 基礎代碼URL類進行傳輸編碼解碼 協議TCPUDPhttp PORT端口協議的實現TCPUDP 模擬服務器 基礎代碼 最后一個是&#xff1a;只要再timeout時間內連接上就是true URL類 導了一個common-iojar包&#xff0c;那個IOUtils就是那個里面的工具類 進行傳輸編碼解碼 協議 TC…