前情回顾
上一篇文章,我们已经初步的使用了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中规则最多的了,下面我们细说一下断言有提供哪些匹配参数。
- After
- After=2021-01-01
匹配在2021年一月一日时间之后发生的请求。
- Before
- Before=2021-01-01
匹配在2021年一月一日时间之前发生的请求。
- Between
- Before=2021-01-01,2021-01-02
匹配在2021年一月一日至2021年一月二日之间发生的请求。
- Cookie
- Cookie=demokey, abc
cookie的设置,有两个参数,分别是name和regexp(Java正则),可以匹配到相应名称的Cookie名称,且与正则相匹配的Cookie值的链接。
- Header
- Header=X-Request-Id, \d+
Header同样也提供了两个参数,分别是name和regexp(Java正则),可以匹配相应类型的Url,比如127.0.0.1/demo/1,这样就可以进入上述规则。
- Host
- Host=**.pxyz.top
Host就比较好理解了,其参数就是匹配相应的ip,或者域名等信息的Url。
- Method
- Method=GET
Method就更加熟悉了,GET、POST、PUT、DELETE等都是属于Method中的一类,上述就是匹配GET类的请求。
- Path
- Path=/baidu/**
Path:我们最常用的,用于匹配URL相关路径。
- Query
- Query=abc
Query:查询条件,用于匹配查询条件是否存在abc条件。
- RemoteAddr
- RemoteAddr=192.168.1.1/24
RemoteAddr:指定请求远程地址IPIP,可以设置多个网段等功能
- 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了,但是要想做到熟练掌握,还需要接下来的深入学习才是,加油。