本文介绍: 通过实现Ordered接口 ,每个过滤器必须指定一个int类型order值,值越小,优先级越高,执行顺序越靠前。- Path=/card/** 代表以card开头的多级路径请求 ,多级和一级请求都会生效。- Path=/card/* 代表以card开头的一级路径请求 ,只有一级请求会生效。反向代理(请求的转发)、路由和负载均衡、身份认证和权限控制、对请求的限流。路由的目标地址,http代表固定地址,lb代表根据服务名称负载均衡。1、路由id(id) 当前路由的唯一标识。2、路由目标(uri)
获取本次请求命中的路由id
Route route = exchange.getAttribute(ServerWebExchangeUtils.GATEWAY_ROUTE_ATTR);
route.getId()
全局过滤器GlobalFilter
通过实现Ordered接口 ,每个过滤器必须指定一个int类型order值,值越小,优先级越高,执行顺序越靠前。
@Override
public int getOrder() {
return Ordered.HIGHEST_PRECEDENCE;
}
路由过滤器
等待
默认过滤器
spring:
cloud:
gateway:
routes:
- id: user-service
uri: lb://userservice
predicates:
- Path=/user/**
default-filters: # 默认过滤器配置
- AddRequestHeader=token, test # 添加请求头
配置与routes平级,会对所有路由生效。
网关作用
反向代理(请求的转发)、路由和负载均衡、身份认证和权限控制、对请求的限流
GateWay路由配置
spring:
cloud:
gateway:
routes: # 网关路由配置
- id: user-service # 路由id,自定义,只要唯一即可
# uri: http://127.0.0.1:8081 # 路由的目标地址 (直接写死地址的方式,不推荐)
uri: lb://userservice # 路由的目标地址 lb是负载均衡,后面跟服务名称(推荐)
predicates: # 路由断言,判断请求是否符合路由规则的条件
- Path=/user/** # 按照路径匹配,以/user/开头的请求就符合要求
filters:
- StripPrefix=1
1、路由id(id) 当前路由的唯一标识
2、路由目标(uri)
路由的目标地址,http代表固定地址,lb代表根据服务名称负载均衡。
3、路由断言(predicates)
判断路由的规则;被Predicate Factory
读取并处理。
例如Path=/user/**
是按照路径匹配,这个规则是由org.springframework.cloud.gateway.handler.predicate.PathRoutePredicateFactory
类来处理。
断言工厂:
名称 | 说明 | 示例 |
---|---|---|
After | 是某个时间点后的请求 | – After=2022-01-20T14:32:27.789-07:00[Asia/Shanghai] |
Before | 是某个时间点之前的请求 | – Before=2022-04-13T15:14:47.433+08:00[Asia/Shanghai] |
Between | 是某两个时间点之前的请求 | – Between=2021-01-20T17:42:47.789-07:00[Asia/Shanghai], 2023-01-21T17:42:47.789-07:00[Asia/Shanghai] |
Cookie | 请求必须包含某些cookie | – Cookie=chocolate |
Header | 请求必须包含某些header | – Header=asd, cas |
Host | 请求必须是访问某个host(域名) | – Host=baidu.com, jd.com |
Method | 请求方式必须是指定方式 | – Method=GET,POST |
Path | 请求路径必须符合指定规则 | – Path=/user/{params},/card/** |
Query | 请求参数必须包含指定参数 | – Query=name, Jack |
RemoteAddr | 请求者的ip必须是指定范围 | – RemoteAddr=192.168.1.1/24 |
Weight | 权重处理 |
– Path=/card/** 代表以card开头的多级路径请求 ,多级和一级请求都会生效
– Path=/card/* 代表以card开头的一级路径请求 ,只有一级请求会生效
4、路由过滤器filters
请求顺序
过滤器执行顺序
默认过滤器-当前路由过滤器-用户自定义的全局过滤器
原文地址:https://blog.csdn.net/han_jr123/article/details/135985929
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.7code.cn/show_67135.html
如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱:suwngjj01@126.com进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。