spring cloud gateway 深入了解 - Predicate
生活随笔
收集整理的這篇文章主要介紹了
spring cloud gateway 深入了解 - Predicate
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章來源
?
spring cloud gateway 通過謂詞(Predicate)來匹配來自用戶的請求
為了方便,使用postman測試不同的謂詞的效果
路徑謂詞(Predicate)—— 最簡單的謂詞
- 配置如下
?
- Path謂詞配置的- Path=/baidu/**的作用是:匹配所有請求路徑以http://localhost:8888/baidu開頭的用戶請求
- 用postman請求http://localhost:8888/baidu,返回百度網頁的HTML,效果如圖
?
cookie謂詞
- 配置如下
?
- Cookie謂詞配置的- Cookie=chocolate, value的作用是:匹配請求中存在cookiechocolate=value的所有請求
- 注意:- Cookie=chocolate, value中的value是正則表達式
- 用postman隨便請求一個urlhttp://localhost:8888/1111111,只要存在cookiechocolate=value,都網關都會匹配到對應路由,最后返回淘寶的HTML,效果如圖
?
請求頭謂詞
- 配置如下
- Header謂詞配置的- Header=X-Request-Id, \d+的作用是:匹配請求頭中存在符合條件“key為X-Request-Id,value為數字”的所有請求
- 注意:Header=X-Request-Id, \d+,第二個參數是正則表達式,如\d+
- 用postman隨便請求一個urlhttp://localhost:8888/2222222,只要請求頭中符合key為X-Request-Id,value為數字,都網關都會匹配到對應路由,最后返回京東的HTML,效果如圖
?
請求參數謂詞
- 配置如下
-
上面請求參數謂詞- Query=param1,value的含義是: 匹配所有含有請求參數param1且它的值符合正則表達式value的請求
- 注意:- Query=param1,value中的value是正則表達式
- 注意:- Query=param1,value中的value可以省略
- 即可變成- Query=param1,這是匹配所有請求參數含有param1的請求并且不篩選值
-
效果如下
?
其他謂詞
- host謂詞匹配對應的host,如下匹配www.somehost.org 或 beta.somehost.org等
Method方法謂詞匹配如get,post等請求的方法
spring:cloud:gateway:routes:- id: method_routeuri: http://example.org predicates:- Method=GET- RemoteAddr為ip地址謂詞,匹配對應ip地址
- After、Before、Between等時間謂詞,分別匹配在某時之后,之前,和某段時間內的請求
謂詞組合
- 不同謂詞之間可以組合使用。它們同時存在于同一個路由時,請求必須同時滿足所有的謂詞條件才被這個路由匹配。
- 注意:一個請求滿足多個路由的謂詞條件時,請求只會被首個成功匹配的路由轉發
- 配置如下
spring:cloud:gateway:routes:# 匹配指定請求參數和請求頭的路由- id: compose_routeuri: http://www.oschina.net/ predicates:- Query=param2- Header=Header-Route,value
- 效果如下
?
轉載于:https://www.cnblogs.com/luchangjiang/p/11090210.html
總結
以上是生活随笔為你收集整理的spring cloud gateway 深入了解 - Predicate的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 含有菲字的网名唯美155个
- 下一篇: 手动升级ubuntu 18.04内核从4