当前位置: 首页 >服务端 > gateway

gateway

1.引入jar

<!--nacos服务注册发现依赖--><dependency><groupId>com.alibaba.cloud</groupId><artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId></dependency><!--网关gateway依赖--><dependency><groupId>org.springframework.cloud</groupId><artifactId>spring-cloud-starter-gateway</artifactId></dependency>

2.属性配置,routes-> id,uri,predicates,filters

(1)id,指定路由唯一标识。

(2)uri,可以指定服务地址也可以指定ip:端口。

(3)predicates,断言有多种规则Path只是其中一种。

(4)路由过滤器filters,过滤器有多种规则。

(5)default-filters默认过滤器。

server:  port: 10010spring:  application:name: gateway  cloud:nacos:  server-addr: localhost:80gateway:  routes:- id: user-service # 路由标示,必须唯一  uri: lb://userservice # 路由的目标地址  predicates: # 路由断言,判断请求是否符合规则- Path=/user/** # 路径断言,判断路径是否是以/user开头,如果是则符合  #filters:  #  - AddRequestHeader=X-Request-Foo, Bar- id: order-service  uri: lb://orderservice  predicates:- Path=/order/**  default-filters:- AddRequestHeader=X-Request-Foo, haha

3.全局过滤器

(1)实现GlobalFilter接口,编写业务逻辑。

(2)实现Ordered接口设置过滤器顺序值越小越优先,也可以使用@Order(1)注解直接指定值。

  
@Order(1)
@Componentpublic class AuthorizeFilter implements GlobalFilter, Ordered {@Overridepublic Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {//获取参数MultiValueMap<String, String> queryParams = exchange.getRequest().getQueryParams();//参数校验String auth = queryParams.getFirst("auth");if(auth != null && auth.equals("admin")){retu chain.filter(exchange);}exchange.getResponse().setStatusCode(HttpStatus.UNAUTHORIZED);//异常返回retu exchange.getResponse().setComplete();}@Overridepublic int getOrder() {retu 0;}}

 4.过滤器排序规则

(1)按照order值排序,路由过滤器和默认过滤器按照定义的顺序从1依次递增2,3,4(路由过滤器和默认过滤器分别递增)。

(2)order值相同时按照 默认过滤器 》路由过滤器 》全局过滤器的顺序执行。

作者:疯靡
来源链接:https://www.cnblogs.com/yjwfcs/p/16267022.html

版权声明:
1、JavaClub(https://www.javaclub.cn)以学习交流为目的,由作者投稿、网友推荐和小编整理收藏优秀的IT技术及相关内容,包括但不限于文字、图片、音频、视频、软件、程序等,其均来自互联网,本站不享有版权,版权归原作者所有。

2、本站提供的内容仅用于个人学习、研究或欣赏,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵犯相关权利人及本网站的合法权利。
3、本网站内容原作者如不愿意在本网站刊登内容,请及时通知本站(javaclubcn@163.com),我们将第一时间核实后及时予以删除。





本文链接:https://www.javaclub.cn/server/68987.html

标签:Gateway
分享给朋友:

“gateway” 的相关文章

SpringCloud Gateway入门 2022年07月26日 09:36:18
SpringCloud(四)GateWay网关 2022年08月10日 08:02:56
gRPC+gRPC Gateway+swagger小记 2022年08月10日 22:18:13
spring-cloud-starter-gateway 2022年08月11日 07:20:26
SpringBoot 整合 gateway 2022年08月14日 16:37:27
SpringCloud创建Gateway模块 2022年08月22日 14:36:16