当前位置: 首页 / 技术干货 / 正文
gateway介绍(二)断言

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]

好程序员公众号

  • · 剖析行业发展趋势
  • · 汇聚企业项目源码

好程序员开班动态

More+
  • HTML5大前端 <高端班>

    开班时间:2021-04-12(深圳)

    开班盛况

    开班时间:2021-05-17(北京)

    开班盛况
  • 大数据+人工智能 <高端班>

    开班时间:2021-03-22(杭州)

    开班盛况

    开班时间:2021-04-26(北京)

    开班盛况
  • JavaEE分布式开发 <高端班>

    开班时间:2021-05-10(北京)

    开班盛况

    开班时间:2021-02-22(北京)

    开班盛况
  • Python人工智能+数据分析 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2020-09-21(上海)

    开班盛况
  • 云计算开发 <高端班>

    开班时间:2021-07-12(北京)

    预约报名

    开班时间:2019-07-22(北京)

    开班盛况
IT培训IT培训
在线咨询
IT培训IT培训
试听
IT培训IT培训
入学教程
IT培训IT培训
立即报名
IT培训

Copyright 2011-2023 北京千锋互联科技有限公司 .All Right 京ICP备12003911号-5 京公网安备 11010802035720号