Gateway
Gateway是什么
Spring Cloud Gateway是Spring官方基于Spring 5.0,Spring Boot 2.0和Project Reactor等技术开发的网关,Spring Cloud Gateway旨在为微服务架构提供一种简单而有效的统一的API路由管理方式。Spring Cloud Gateway作为Spring Cloud生态系中的网关,目标是替代ZUUL,其不仅提供统一的路由方式,并且基于Filter链的方式提供了网关基本的功能,例如:安全,监控/埋点,和限流等。
简单来说就是用于处理前来访问服务的每一个请求。可以对这些请求做出身份认证和权限校验,服务路由,负载均衡,请求限流等操作
- 服务路由:将请求发往具体的服务
- 负载均衡:每个服务都有多个实例,从中挑一个实例
- 请求限流:限制请求数量
- 断言:表示为一些布尔表达式,用于判断;路由断言即为判断路由请求是否合规

SpringCloudGatew搭建
引入module
SpringCloudGateway的依赖和Nacos的服务发现依赖
<dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> </dependencies>
|
创建启动器
@SpringBootApplication public class GatewayApplication { public static void main(String[] args) { SpringApplication.run(GatewayApplication.class,args); } }
|
配置gateway与nacos
server: port: 10010 spring: application: name: gateway cloud: nacos: server-addr: localhost:8848 gateway: routes: - id: user-service
uri: lb://userservice predicates: - Path=/user/** - id: order-service uri:lb//orderservice predicates: - Path=/order/**
|