Spring Cloud Gateway-简介及基础应用
一、Spring Cloud Gateway简介
Spring Cloud Gateway是基于Spring WebFlux实现的网关组件,它的目标是提供一个简单、高效的API路由方式,并提供相应的安全、监控和故障恢复能力。
请求到达网关后Gateway Handler Mapping根据请求参数匹配配置的路由规则;
- 匹配到路由规则后,请求与相应路由规则由Gateway Web Handler发到一系列Filter进行处理;
- 实际接口服务返回响应数据,再次经过一系列Filter的处理;
- 经过处理的响应数据返回到接口调用方。
Spring Cloud Gateway包含三个基本概念:
- Filter(过滤器):对请求或响应进行拦截处理,可以对请求头、请求体、响应头、响应体进行修改,可进行日志记录,可以进行请求状态告警等。
- Route(路由):用于配置路由规则,当断言为真时本条规则生效。
- Predicate(断言):用于确定生效的路由规则。
二、基础应用示例
1、代码开发
创建一个Spring Boot项目,并添加相关依赖:
<?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>tech.ihai</groupId> <artifactId>ihai-gateway</artifactId> <version>1.0-SNAPSHOT</version> <properties> <spring.cloud.gateway.version>3.0.3</spring.cloud.gateway.version> <maven.compiler.source>16</maven.compiler.source> <maven.compiler.target>16</maven.compiler.target> </properties> <dependencies> <dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> <version>${spring.cloud.gateway.version}</version> </dependency> </dependencies> </project>
创建启动类:
@SpringBootApplication public class IHaiGateway { /** * 此方法是为了方便应用管理,非必须 * @return */ @Bean public ApplicationPidFileWriter pidFileWriter(){ return new ApplicationPidFileWriter(); } public static void main(String[] args) { SpringApplication.run(IHaiGateway.class, args); } }
接着配置路由规则后启动就可以了,在此介绍通过文件和简单的代码两种配置方式。(动态配置等复杂使用方式将在后边的文章中向大家介绍)
2、路由配置(文件方式)
在application.yml中进行配置即可:
3、路由配置(代码方式)
以上就是Spring Cloud Gateway的基本使用,后续将通过系列文章深度开发。