**Spring Cloud Gateway:**提供一种简单而有效的方式来对API进行路由,并为他们提供切面,例如:安全性,监控/指标 和弹性等。
温馨提示:在学习新技术之前建议先看看 官方文档
1.如何在工程中引用Spring Cloud Gateway
-
引入jar包
<dependency> <groupId>org.springframework.cloud</groupId> <artifactId>spring-cloud-starter-gateway</artifactId> </dependency> <!-- SpringCloud Ailibaba Nacos --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> <!-- SpringCloud Ailibaba Nacos Config --> <dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> <!-- SpringBoot Actuator --> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
-
配置注册中心地址
spring: application: name: dyzh-gateway cloud: nacos: discovery: enabled: true register-enabled: true server-addr: 127.0.0.1:8848
-
配置路由
- Route 路由:gateway的基本构建模块。它由ID、目标URI、断言集合和过滤器集合组成。如果聚合断言结果为真,则匹配到该路由。
- Predicate 断言:这是一个Java 8 Function Predicate。输入类型是 Spring Framework
ServerWebExchange
。这允许开发人员可以匹配来自HTTP请求的任何内容,例如Header或参数。 - Filter 过滤器:这些是使用特定工厂构建的 Spring Framework
GatewayFilter
实例。 。Spring cloud gateway中的filter分为两种类型的Filter,分别是Gateway Filter和Global Filter(全局)。过滤器Filter将会对请求和响应进行修改处理 所以可以在返回请求之前或之后修改请求和响应的内容。
spring: cloud: gateway: discovery: locator: # 注册中心自动发现 默认为 false enabled: false #手动配置路由 routes: #路由id,可以自定义设置 - id: dyzh-demo-service #目标URI&#