微服務SpringCloud專案:初步整合gateway進行限流、token過濾等操作

前言

為 應用提供了 閘道器支援,具有強大的智慧路由與過濾器功能,本文將對其用法進行詳細介紹。

是 新推出的閘道器框架,比較於上一代 ,功能和效能有很大的提升。 採用的是阻塞多執行緒方式,也就是一個執行緒處理一個連線請求,高併發情況下效能較差,即使是 雖然做到了非阻塞,但是面對連續跳票,看起來 要被拋棄了。取而代之的是, 是基於 ,是一個非阻塞非同步的框架,效能上有很大提升,而且包含了 的所有功能,可以從 無縫切換到

1。 簡介

是在 之上構建的 閘道器服務,基於 等技術。 旨在提供一種簡單而有效的方式來 進行路由,以及提供一些強大的過濾器功能, 例如: 等。

具有如下特性:

基於 進行構建;

動態路由:能夠匹配任何請求屬性;

可以對路由指定 ;

整合 的斷路器功能;

整合 服務發現功能;

易於編寫的 ;

請求限流功能;

支援路徑重寫。

2。 相關概念

Route(路由):路由是構建閘道器的基本模組,它由ID,目標URI,一系列的斷言和過濾器組成,如果斷言為true則匹配該路由;

Predicate(斷言):指的是 的 。輸入型別是 框架中的 。這使開發人員可以匹配HTTP請求中的所有內容,例如請求頭或請求引數。如果請求與斷言相匹配,則進行路由;

Filter(過濾器):指的是Spring框架中 的例項,使用過濾器,可以在請求被路由前後對請求進行修改。

3。 引入 依賴

在 中新增相關依賴(引入 需要的 ,記得引入 元件,否則服務發現中心會認為服務不線上,導致閘道器無法路由到服務)

下面是我用到的依賴

4。啟動類如下:

5。 配置

這裡我只展示關於 的配置其他配置請自行處理

6。

我在路由里加了圖片驗證操作,各位可以自行查詢新增進來

7。

8。

閘道器配置檔案

閘道器配置

8。

密碼相關

全域性攔截器,作用所有的微服務

對請求頭中引數進行處理 from 引數進行清洗

重寫StripPrefix = 1,支援全域性

支援swagger新增X-Forwarded-Prefix header (F SR2 已經支援,不需要自己維護)

驗證過濾器

注意如果線上使用看下程式碼把本地註解注掉

9。 處理器

閘道器異常通用處理器,只作用在 環境下 , 優先順序低於執行

10。 簡單說下——結果我就不驗證了

git

PS:,最後感謝大家耐心觀看完畢,留個點贊收藏是您對我最大的鼓勵!