目录
4.4.2、实现GlobalFilter,OrderId两个接口
1、概念
1.1、作用
反向代理、鉴权、流量控制、熔断以及日志监控
1.2、微服务中网关位置
1.3、核心功能
1.3.1、路由(Route)
- 路由是构建网关的基本模块
- 由ID,目标URI,一系列的断言和过滤器组成
1.3.2、断言(Predicate)
- 开发人员可以匹配HTTP请求中的所有内容(例如请求头或请求参数)
- 如果请求与断言相匹配则进行路由
1.3.3、过滤(Filter)
- 指的是Spring框架中GatewayFilter的实例
- 使用过滤器,可以在请求被路由前或者之后对请求进行修改.
1.4、Gateway工作流程
1.4.1、流程
1.客户端向Getway发出请求,然后在Gateway Handler Mapping中找到与请求匹配的路由,并发送到Gateway Web Handler
2.Handler再通过指定的过滤器链,将请求发送到实际的服务执行业务逻辑,然后返回。
1.4.2、过滤器链
- 发送代理请求之前(“pre”)作用:参数校验、权限校验、流量监控、日志输出和协议转换等。
- 发送代理请求之后(“post”)作用:响应内容、响应头修改、日志输出、流量监控等
2、Gateway使用
2.1、固定IP地址进行路由
2.1.1、POM文件
添加Gateway依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
2.1.2、yaml配置文件
server:
port: 9527
spring:
application:
name: cloud-gateway
eureka:
instance:
hostname: cloud-gateway-service
client:
service-url:
fetch-registry: true
register-with-eureka: true
defaultZone: http://eureka7001.com:7001/eureka/
2.1.3、业务类可以不添加业务类
2.1.4、主启动类
@SpringBootApplication
@EnableEurekaClient
public class GatewayMain9527 {
public static void main(String[] args) {
SpringApplication.run(GatewayMain9527.class, args);
}
}
2.1.5、添加匹配的路由地址
1)在yaml配置文件中添加
spring:
cloud:
gateway:
routes:
- id: payment_route # 路由的id,没有规定规则但要求唯一,建议配合服务名