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]
上一篇:gateway介绍(一)
下一篇:gateway介绍(三)动态转发
开班时间: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号