日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

spring cloud gateway 深入了解 - Predicate

發布時間:2023/12/2 编程问答 34 豆豆
生活随笔 收集整理的這篇文章主要介紹了 spring cloud gateway 深入了解 - Predicate 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

文章來源

?

spring cloud gateway 通過謂詞(Predicate)來匹配來自用戶的請求

為了方便,使用postman測試不同的謂詞的效果

路徑謂詞(Predicate)—— 最簡單的謂詞

  • 配置如下
spring:cloud:gateway:routes:# 匹配指定路徑的路由- id: path_routeuri: http://www.baidu.com predicates:- Path=/baidu/**filters:- StripPrefix=1

?

  • Path謂詞配置的- Path=/baidu/**的作用是:匹配所有請求路徑以http://localhost:8888/baidu開頭的用戶請求
  • 用postman請求http://localhost:8888/baidu,返回百度網頁的HTML,效果如圖

?

cookie謂詞

  • 配置如下
spring:cloud:gateway:routes:# 匹配指定cookie的路由- id: cookie_routeuri: http://www.taobao.com predicates:- Cookie=chocolate, value

?

  • Cookie謂詞配置的- Cookie=chocolate, value的作用是:匹配請求中存在cookiechocolate=value的所有請求
    • 注意:- Cookie=chocolate, value中的value是正則表達式
  • 用postman隨便請求一個urlhttp://localhost:8888/1111111,只要存在cookiechocolate=value,都網關都會匹配到對應路由,最后返回淘寶的HTML,效果如圖

?

請求頭謂詞

  • 配置如下
spring:cloud:gateway:routes:# 匹配指定請求頭的路由- id: header_routeuri: http://www.jd.com/ predicates:- Header=X-Request-Id, \d+
  • 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,效果如圖

?

請求參數謂詞

  • 配置如下
spring:cloud:gateway:routes:# 匹配指定請求參數的路由- id: cookie_routeuri: http://tmall.com/ predicates:- Query=param1,value
  • 上面請求參數謂詞- Query=param1,value的含義是: 匹配所有含有請求參數param1且它的值符合正則表達式value的請求

    • 注意:- Query=param1,value中的value是正則表達式
    • 注意:- Query=param1,value中的value可以省略
      • 即可變成- Query=param1,這是匹配所有請求參數含有param1的請求并且不篩選值
  • 效果如下

?

其他謂詞

  • host謂詞匹配對應的host,如下匹配www.somehost.org 或 beta.somehost.org等
spring:cloud:gateway:routes:- id: host_routeuri: http://example.org predicates:- Host=**.somehost.org

Method方法謂詞匹配如get,post等請求的方法

spring:cloud:gateway:routes:- id: method_routeuri: http://example.org predicates:- Method=GET
  • RemoteAddr為ip地址謂詞,匹配對應ip地址
spring:cloud:gateway:routes:- id: remoteaddr_routeuri: http://example.org predicates:- RemoteAddr=192.168.1.1/24
  • 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的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。