Spring Cloud Gateway介绍
网关的作用这里就不重复了。
Spring Cloud Gateway是Spring官方自己开发的网关。提供统一的路由方式,并基于Filter链的方式提供网关的功能(安全、监控、限流等)。其目标是替代Zuul。
与Spring Cloud整合的Zuul(1.x版本)不同的是,Spring Cloud Gateway是基于Netty运行。依赖Spring Boot 2.0和Spring WebFlux(Spring 5.0),它本身并不兼容Servlet,无法打war包。
通过前面的博客中:5.Spring Cloud 网关Zuul使用入门介绍了Zuul中的过滤器共有4中类型(pre,route,post,error),而Spring Cloud Gateway的过滤器只有pre和post两种。
此外,Spring Cloud Gateway还有如下核心概念:
-
Route
路由Route,由ID、目标URI、断言、过滤器组成。简单的说就是路由规则。
-
Predicate
通俗的讲就是路由的匹配条件或生效条件
-
Filter
过滤器,在请求发出前后进行一些处理(可以修改请求、响应内容)
Spring Cloud Gateway上手使用
-
使用Idea中的Alibaba Cloud Toolkit插件创建项目,并勾选Spring Cloud Gateway。
maven依赖
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency>
-
启动测试项目student-service服务和book-service服务。
两个测试服务已经正常在Nacos中注册。
测试接口
-
在gateway网关项目中增加配置。
在创建项目的时候勾选了Nacos配置中心,这里直接更改bootstrap.yml配置文件。
这里给gateway服务做一个简单的配置(注:Nacos注册中心的配置我已经统一配置在了Nacos配置中心的common.yml中,如果你没有配置,需要在配置文件中添加注册中心的配置。必须项。这样一来,网关gateway通过注册中心的服务注册实现路由转发)。
Nacos中的配置
common.yml详细配置