1、环境/工具
- Spring Boot 2.6.13
- Spring Cloud Gateway
Spring Cloud Gateway 官网中文文档:
https://www.springcloud.cc/spring-cloud-greenwich.html#gateway-starter
主要用来做大规模API管理,包括请求限流、过滤、鉴权等,比Zuul网络性能好。
2、原理
一次请求首先到达网关,判断是否满足predicates条件,满足则进行路由过滤,最后到达指定服务
3、步骤
可以新建一个微服务moudule, 引入依赖:
引入openFeign和loadbalancer 保证可以访问其他微服务。
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-loadbalancer</artifactId>
</dependency>
添加注册发现注解
application.yml
启动应用可以看到gateway使用网络性能更好的netty作为服务器,不是tomcat
验证:可以看到跳转到指定的路径
4. 注意事项
- predicates 做路径重写时存在优先级,更精确的一般放前面,如 /api/login/** 应该配置在/api/** 的前面