1. 网关作用
Spring Cloud 微服务体系中,每个服务 都是运行在独立的服务器上,整体上构成一个完整的服务,对于用户请求,每个服务都需要进行授权认证,流控等操作,这样一来,各个模块都要重复开发同样的功能,网关就是在请求到达每个服务之前,进行统一的授权认证操作,以及接口日志,限流操作,然后再将请求转发至对应的服务。Spring Cloud Gateway是spirng官方提供的组件,为了替代zuul(bio通信,性能差;2.x ) Spring Cloud Gateway基于NIO,webflux , Reactor, 高性能。
2. Spring Cloud Gateway网关应用
2.1 Spring Cloud Gateway项目搭建
使用idea中的spring initalizr快速创建一个springcloud gateway项目:
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
2.2 Spring Cloud Gateway网关配置
添加如下配置:
spring:
application:
name: spring-cloud-gateway
cloud:
gateway:
routes:
- id: config_route # spirngcloud可以配置多个路由,每个路由下面可以配置多个predicates,多个predicates同时验证通过才会进行请求转发
predicates:
- Path=/gateway/**
filters:
- StripPrefix=1 # 跳过Path中的第一个路径, 请求被转发后会变成http://localhost:8082/**
uri: http://localhost:8082/ # gateway请求转发的目标地址
#https://docs.spring.io/spring-cloud-gateway/docs/current/reference/html/#the-stripprefix-gatewayfilter-factory
- id