(三)Gateway开发教程之配置路由详解(全)

这是我参与11月更文挑战的第22天,活动详情查看:2021最后一次更文挑战

前情回顾

上一篇文章,我们已经初步的使用了Gateway组件,并且在SpringCloud框架中进行了集成操作,已经算是入门了,接下来就是要全面的了解下Gateway中各项配置了。

Gateway组件中的配置路由详解

Gateway组件中的配置,在上篇文章中,我们也使用了一些,但是并没有将其他的使用方法全部列出,今天我们就要将其余的一些配置同大家讲述一下。

路由参数

路由Router的使用,我们先看一下之前使用的例子:

routes:
  - id: router1
    uri: http://www.baidu.com
    predicates:
      - Path=/baidu/**
    filters:
      - StripPrefix=1
复制代码

其中的id参数,是唯一的,如果多个路由的话,id也应该是不同的。

uri:该参数时用来指定匹配后的访问链接,如果匹配成功,那么就去访问百度了。

predicates:断言参数,这个请接着往下看。

filters:过滤器参数。

断言参数

断言参数predicates,是用来匹配路由规则的,比如本次例子中的Path=/baidu/**,意思就是匹配http://localhost/baidu/*/的相关的链接。

断言参数也是Gateway中规则最多的了,下面我们细说一下断言有提供哪些匹配参数。

  1. After

- After=2021-01-01

匹配在2021年一月一日时间之后发生的请求。

  1. Before

- Before=2021-01-01

匹配在2021年一月一日时间之前发生的请求。

  1. Between

- Before=2021-01-01,2021-01-02

匹配在2021年一月一日至2021年一月二日之间发生的请求。

  1. Cookie

- Cookie=demokey, abc

cookie的设置,有两个参数,分别是name和regexp(Java正则),可以匹配到相应名称的Cookie名称,且与正则相匹配的Cookie值的链接。

  1. Header

- Header=X-Request-Id, \d+

Header同样也提供了两个参数,分别是name和regexp(Java正则),可以匹配相应类型的Url,比如127.0.0.1/demo/1,这样就可以进入上述规则。

  1. Host

- Host=**.pxyz.top

Host就比较好理解了,其参数就是匹配相应的ip,或者域名等信息的Url。

  1. Method

- Method=GET

Method就更加熟悉了,GET、POST、PUT、DELETE等都是属于Method中的一类,上述就是匹配GET类的请求。

  1. Path

- Path=/baidu/**

Path:我们最常用的,用于匹配URL相关路径。

  1. Query

- Query=abc

Query:查询条件,用于匹配查询条件是否存在abc条件。

  1. RemoteAddr

- RemoteAddr=192.168.1.1/24

RemoteAddr:指定请求远程地址IPIP,可以设置多个网段等功能

  1. Weight

- Weight= gtoup, 2

利用路由权重来匹配对应的路由规则。

过滤器参数

过滤器参数相对断言参数要少一些,但是同样重要,让我们来细数一下。

路由中的filters参数的设置也是非常广泛的。

而我们平时使用最多的就是

      routes:
      - id: demo
        uri: http://demo
        predicates:
        - Path=/demo/**
        filters:
        - StripPrefix=1
复制代码

这个参数是从请求中剥离的路径个数,比如http://127.0.0.1/demo/user/list, 就可以得到http://127.0.0.1/demo/list

总结

如果你能合理的运用这些路由配置,那么就证明已经可以熟练使用Gateway了,但是要想做到熟练掌握,还需要接下来的深入学习才是,加油。

猜你喜欢

转载自juejin.im/post/7033571812890017829
今日推荐