2022-11-02
成都 杭州 南京
斷言
斷言的作用就是做boolean判斷,為true則代表符合當前的路由,會轉發到對應的地址,Gateway 提供了很多斷言的方式,可以讓我們對請求進行匹配映射,并且可以多種斷言同時使用
斷言語法: 方式=值
2.1 Path斷言
當請求的地址匹配當前path的時候會執行當前路由
predicates:
-Path=/mg
示例,下面的斷言方式和這里一樣
spring:
application:
name: gateway
cloud:
gateway:
routes:
- id: 08consumer-eureka-feign # 當前路由策略的唯一ID,可以隨便寫,但是如果出現多個id,必須唯一
uri: http://localhost:12000 #當前路由指向的真實地址,這個地址是不是最終真實地址,最終地址會拼接上訪問地址
predicates: #配置斷言, 符合下面斷言的請求會轉發到上面的url,斷言很多種條件
- Path=/order/** #斷言的條件是請求的地址符合這個表達式,注意格式為Path=/order/**
2.2 Query斷言
參數值可以寫正則,也可以只寫參數名,在傳遞了符合的參數名和值之后會轉發到對應的url
predicates:
- Query=name,ba. #要求必須傳遞一個參數名叫name 值為ba開頭的數據 .是匹配一個字符 *匹配N個相同的字符 , .*可以匹配任何內容
2.3 Method斷言
當請求方式匹配的時候執行當前路由
predicates:
- Method=get
2.4 Host斷言
當是通過指定域名訪問當前網關的時候執行對應的路由
predicates:
- Host=localhost:8080
2.5 Cookie斷言
當包含某個cookie和值的時候執行
predicates:
- Cookie=name,yiming
2.6 Header斷言
當包含某個header和對應的值的時候執行
predicates:
- Header=reqId,9090\d+ #正則表達式\d+ 數字
2.7 Weight 權重路由
權重是將相同的請求分配到不同的服務器, Weight后的第一個參數一致的時候通過后面的數字按照比例分配請求
- id: weight2 #這個id唯一即可
2.9 Before 時間路由
指定一個時間,在當前時間之前可以訪問,可以用于定時停機
predicates:
- Before=2022-04-19T00:05:00.789+08:00[Asia/Shanghai]
2.10 After 時間路由
指定一個時間,在當前時間之后可以訪問,可以用于定時開啟
predicates:
- After=2022-04-19T00:05:00.789+08:00[Asia/Shanghai]
2.11 Between時間區間路由
在指定的時間區間內可以訪問
predicates: - Between=2021-04-19T00:05:00.789+08:00[Asia/Shanghai],2022-04-19T00:05:00.789+08:00[Asia/Shanghai]
2.12 RemoteAddr
必須來自于某個地址發起的請求才可以訪問
predicates:
- Between=2021-04-19T00:05:00.789+08:00[Asia/Shanghai],2022-04-19T00:05:00.789+08:00[Asia/Shanghai]
開班時間:2021-04-12(深圳)
開班盛況開班時間:2021-05-17(北京)
開班盛況開班時間:2021-03-22(杭州)
開班盛況開班時間:2021-04-26(北京)
開班盛況開班時間:2021-05-10(北京)
開班盛況開班時間:2021-02-22(北京)
開班盛況開班時間:2021-07-12(北京)
預約報名開班時間:2020-09-21(上海)
開班盛況開班時間:2021-07-12(北京)
預約報名開班時間:2019-07-22(北京)
開班盛況Copyright 2011-2023 北京千鋒互聯科技有限公司 .All Right 京ICP備12003911號-5 京公網安備 11010802035720號