Spring Cloud Gateway 路由轉發之After(Before)路由斷言工廠使用

前言


本文旨在介紹After(Before)路由斷言工廠使用,以此類推可以使用其他路由斷言工廠

案例


1、概念

網關簡單的說就是提供一個對外統一的API入口和出口,統管企業對外的所有API出口。一般來說,網關對外暴露的URL或者接口信息,
我們統稱之為路由信息。如果研發過網關中間件,或者使用或了解過ZUUL的,網關的核心肯定是Filter以及FilterChain(Filter責任鏈)。
Spring Cloud Gateway也具有路由信息和Filter。下面介紹一下Spring Cloud gateway中最重要的幾個概念---引用自http://xujin.org/sc/gw/gw04/
復制代碼
路由(route):路由是網關最基礎的部分,路由信息由一個ID、一個目的url、一組斷言工廠和一組Filter組成。如果路由斷言工廠為真,則說明請求的Url和配置的路由匹配。
復制代碼
斷言(Predicate): java 8中的斷言函數。Spring Cloud Gateway中的斷言函數輸入類型是Spring 5.0框架中的ServerWebExchange。Spring Cloud Gateway中的斷言函數允許開發者去定義匹配來自于http request中的任何信息,比如請求頭和參數等。
復制代碼
過濾器(filter):一個標準的Spring webFilter。Spring Cloud Gateway中的Filter分為兩種類型的Filter,分別是Gateway Filter和Global Filter.網關 Filter實例是由Spring 框架中的網關Filter的特殊工廠構造。request在轉發到目前服務之前,response在返回到調用端之前都可以被修改或者自定義。
復制代碼

2、什么是After(Before)路由斷言?
Before路由斷言工廠帶有一個UTC時間格式的時間參數,當請求進來的當前時間在路由斷言工廠之前會成功匹配,否則不能成功匹配。
After路由斷言工廠帶有一個UTC時間格式的時間參數,當請求進來的當前時間在路由斷言工廠之后會成功匹配,否則不能成功匹配。

3、案例
在Spring Cloud Gateway 路由轉發案例基礎上修改application.yml文件中斷言配置

server:port: 9001
spring:application:name: service-agatewaycloud:nacos:discovery:server-addr: 127.0.0.1:8848#將此服務設置為網關gateway:discovery:locator:enabled: trueroutes:#路由名稱- id: consumer_route#跳轉路由uri: http://www.scnunanshen.online/#斷言,設置攔截條件predicates:- After=2018-03-18T17:32:58.129+08:00[Asia/Shanghai]        #此處為After斷言工廠,表示在該時間之后的請求都將跳轉到uri
復制代碼

4、其他斷言工廠

  • 通過Cookie信息配置
  • 通過Header屬性匹配
  • 通過Host主機匹配
  • 通過請求方式匹配
  • 通過請求參數匹配
  • 以上方式組合使用

示例:參數匹配方式

server:port: 9001
spring:application:name: service-agatewaycloud:nacos:discovery:server-addr: 127.0.0.1:8848#將此服務設置為網關gateway:discovery:locator:enabled: trueroutes:#路由名稱- id: consumer_route#跳轉路由uri: http://www.scnunanshen.online/#斷言,設置攔截條件predicates:- Query=nan#此處表示設置當訪問url中存在nan屬性時,路由才會匹配
#http://localhost:9001/aa?nan=1訪問 ,斷言為真路由匹配。#也可以同時設置屬性跟值如:- Query=nan,2
#當路由匹配nan=2時,才會被攔截
復制代碼

轉載于:https://juejin.im/post/5c87704de51d4539d9565ddc

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

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

相關文章

redis服務器學習一

一:什么是redis服務器 redis是一個key-value存儲系統。和Memcached類似,它支持存儲的value類型相對更多,包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。這些數據類型都支…

RichTextBox 改變每行的字體顏色

RichTextBox 改變每行的字體顏色 1、新建方法AppendTextColorful(this RichTextBox rtBox, string text, Color color, bool addNewLine) 2、調用方法AppendTextColorful(this RichTextBox rtBox, string text, Color color, bool addNewLine) public stat…

Android使用token維持登陸狀態的方法

什么是token token(令牌)是一串唯一的字符串,通常由服務端生成,在注冊完成時返回給客戶端,用來標識此用戶,客戶端將此字符串存儲在本地。在以后的網絡請求時,客戶端先查詢本地的token&#xff0…

阿里云RPA專有云產品文檔集合

請訪問以下鏈接: https://www.yuque.com/aliyun_rpa/

利用相機SDK采相轉換至HImage

來源于http://blog.sina.com.cn/s/blog_d40acd530102xndm.html Halcon采相功能非常強大,基本支持各大品牌以及各個通信接口的相機,并且Halcon提供為相機廠商提供了制作Halcon相機接口庫的辦法,總之Halcon基本可以直接連接所有工業相機。 但…

java項目啟動tomcat沒報錯,然后頁面報404無法找到,重新編譯后,出現以下狀態...

嚴重: Exception sending context initialized event to listener instance of class org.springframework.web.context.ContextLoaderListenerorg.springframework.beans.factory.BeanCreationException: Error creating bean with name MapperScannerConfigurer defined in c…

3.12PMP試題每日一題

哪一個是組織過程資產的事例:A、項目管理信息系統B、配置管理姿勢庫C、配置管理系統D、共享系統和云計算 作者:Tracy19890201(同微信號)轉載于:https://blog.51cto.com/13554215/2361982

相機與鏡頭常識

1.焦距(FocalLength)   焦距是從鏡頭的中心點到膠平面上所形成的清晰影像之間的距離。焦距的大小決定著視角的大小,焦距數值小,視角大,所觀察的范圍也大;焦距數值大,視角小,觀察范…

vsftpd的安裝

簡介 vsftpd是一個免費的開源的ftp服務器軟件; 特點 小巧輕快,安全易用,支持虛擬用戶、支持帶寬限制等功能; 安裝 執行 yum -y install vsftpd 創建虛擬用戶(注意權限問題(chmod),這個要根據情況來定) 選擇在根或用戶目…

halcon模板匹配測試流程

*1、創建模板(獲取要做模板區域的圖像) *create_shape_model (ImageReduced, 4, 0, rad(360), rad(1), none, use_polarity, 30, 10, ModelID) *2、獲取形狀模型---第二步(為了顯示找的的模板) *get_shape_model_contours (…

企業云存儲:為什么中大型企業偏愛自建私有云?

“上云?我們通常自建企業私有云。”9102年了,在云存儲服務的選擇上,中大型企業基本步調一致,統籌規劃自建企業私有云。為什么中大型企業都偏愛自建企業私有云?一、長久的成本考量從賬面上看,通常私有云初期…

ETL作業調度軟件TASKCTL自定義擴展作業類型插件安裝

TASKCTL批量自動化調度作業類型擴展插件的安裝方法如下幾種: 1、 直接覆蓋法 直接覆蓋法的意思就是將自定義擴展好的插件,通常是一個shell腳本,上傳至后臺調度核心服務上,然后修改后臺任務類型的XML元素配置文件即可。 注意&#…

遞歸就這么簡單

遞歸介紹 本來預算此章節是繼續寫快速排序的,然而編寫快速排序往往是遞歸來寫的,并且遞歸可能不是那么好理解,于是就有了這篇文章。 在上面提到了遞歸這么一個詞,遞歸在程序語言中簡單的理解是:方法自己調用自己 遞歸其…

阿里云RPA(機器人流程自動化)干貨系列之二:認識RPA(下)

2019獨角獸企業重金招聘Python工程師標準>>> 導讀:本文是阿里云RPA(機器人流程自動化)干貨系列之二,主要介紹了RPA的發展齊納經和主要使用場景有哪些,目前國內外主流的RPA廠商以及RPA的未來在哪。 一、RPA的…

C# 圖片的讀取

//圖片轉成二進制public byte[] GetPictureData(string imagepath){/**/根據圖片文件的路徑使用文件流打開,并保存為byte[] FileStream FileStream new FileStream(imagepath, FileMode.Open);byte[] byData new byte[FileStream.Length];FileStream.Read(byData,…

SDOI2010 地精部落

題目描述 傳說很久以前,大地上居住著一種神秘的生物:地精。 地精喜歡住在連綿不絕的山脈中。具體地說,一座長度為N的山脈H可分為從左到右的N段,每段有一個[b][u]獨一無二[/u][/b]的高度Hi,其中Hi是1到N之間的正整數。 …

Codechef Yet another cute girl

題意大概就是讓你求一下[L,R]中的約數個數是素數的數的個數。 其中1<L<R<1e12,R-L<1e6. 然后我寫了兩種做法&#xff0c;第一種是可以直接搞出來L-R的約數個數&#xff0c;然后直接統計一下就好了。 這個的復雜度大致是 O((R-L) * log(R-L)) 第二種就是需要先發現滿…

簡單弄一個-個人主頁

--- 整理一下已經發表的文章 JAVA基礎 java基礎數據結構之-紅黑樹(插入)java基礎數據結構之-紅黑樹(刪除)了解一下jdk動態代理的本質了解一下cglib動態代理的本質SpringBoot源碼解析 前言&#xff1a;閱讀springboot源碼之前&#xff0c;最好對spring源碼有一定的了解&#xff…

Halocn OCR識別入門學習

一、建立OCR庫 dev_close_window() read_image(Image,OCR) get_image_size(Image,Width,Hight) dev_open_window(0,0,Width,Hight,black,Window) dev_display(Image)*字符處理 rgb1_to_gray(Image,ImageGray) *鼠標畫你要找的roi區域 draw_rectangle1(Window,Row1,Column1,Row…

ctsc2009 移民站選址

分析&#xff1a;非常非常好的一道題&#xff01; 首先需要對問題進行轉化&#xff1a; 行列無關&#xff0c;對于行單獨處理&#xff0c;對于列單獨處理必然存在一個最優方案使得每一個新站與舊站重合.轉化1很顯然&#xff0c;對于轉化2&#xff0c;是一類非常經典的“中位數問…