springcloud组件gateway断言(Predicate)

更新时间:2023-05-16 18:44:12 阅读: 评论:0

springcloud组件gateway断⾔(Predicate)
英文小诗
Spring Cloud Gateway是SpringCloud的全新⼦项⽬,该项⽬基于Spring5.x、SpringBoot2.x技术版本进⾏编写,意在提供简单⽅便、可扩展的统⼀API 路由管理⽅式。
概念解释:
Route(路由):路由是⽹关的基本单元,由ID、URI、⼀组Predicate、⼀组Filter组成,根据Predicate进⾏匹配转发。
Predicate(谓语、断⾔):路由转发的判断条件,⽬前SpringCloud Gateway⽀持多种⽅式,常见如:Path、Query、Method、Header等。
Filter(过滤器):过滤器是路由转发请求时所经过的过滤逻辑,可⽤于修改请求、响应内容。
开始使⽤
Spring Cloud Gateway⽬前有两种⽅式进⾏配置:
飞镖的折法
通过@Bean注解RouteLocator ⽅法返回值
route的组成部分
id:路由的ID
uri:匹配路由的转发地址
predicates:配置该路由的断⾔,通过PredicateDefinition类进⾏接收配置。
order:路由的优先级,数字越⼩,优先级越⾼。
Spring Cloud Gateway Predicates
每⼀个Predicate的使⽤,你可以理解为:当满⾜这种条件后才会被转发,如果是多个,那就是都满⾜的情况下被转发。
Path ⽅式匹配转发
我们在l配置⽂件内添加对应的路由配置,如下所⽰
spring:
application:
name: spring-cloud-gateway-sample
cloud:
gateway:
世界还很年轻
routes:
- id: blog
uri:
predicates:
# 匹配路径转发
- Path=/api-boot-datasource-switch.html
# 端⼝号
rver:
port: 9090
在上⾯的配置中,当访问localhost:9090/api-boot-datasource-switch.html时就会被⾃动转发到/api-boot-datasource-switch.html,这⾥要注意完全匹配Path的值时才会进⾏路由转发
,对应的RouteLocator⽅式该怎么进⾏配置
社保证@Bean
public RouteLocator routeLocator(RouteLocatorBuilder builder) {
utes()
.route("blog", r ->
r.path("/api-boot-datasource-switch.html").uri(""))
.build();
}
id:blog
path:/api-boot-datasource-switch.html
uri:
Host ⽅式匹配转发
Spring Cloud Gateway可以根据Host主机名进⾏匹配转发,如果我们的接⼝只允许**.域名进⾏访问,那么配置如下所⽰:spring:
cloud:
gateway:
routes:
- id: blog
uri:
predicates:
- Host=**.
对应的RouteLocator⽅式该进⾏配置
@Bean
广汽本田汽车有限公司public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
return  utes()
.route(r -> r.host("**.")
.uri("")
.
至和order(1)
.id("blog")
)
.build();
}
组合⽰例
相同的Predicate也可以配置多个,请求的转发是必须满⾜所有的Predicate后才可以进⾏路由转发,组合使⽤⽰例如下所⽰:spring:
cloud:
gateway:
routes:
- id: blog
uri:
predicates:
植物蛋白粉
- Method=GET
- Host=**.也许英文
- Path=192.168.1.56/24
对应的RouteLocator⽅式该进⾏配置
@Bean
public RouteLocator customRouteLocator(RouteLocatorBuilder builder) {
return  utes()
.route(r -> r.host("**.")
.and().path("/api-boot-datasource-switch.html")
.
and().method("GET")
.uri("")
.order(1)
.id("blog")
)
.build();
}

本文发布于:2023-05-16 18:44:12,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/89/904812.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:转发   路由   配置   匹配   请求   编写   时所
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图