Gateway原理及实例

本文介绍了Spring Cloud Gateway作为微服务网关的作用和位置,详细阐述了其核心功能——路由(Route)、断言(Predicate)和过滤器(Filter)。路由由ID、目标URI和断言组成,断言用于匹配HTTP请求内容,过滤器则允许在请求前或后进行操作。此外,文中还探讨了Gateway的工作流程,包括过滤器链的执行,并提供了固定IP地址和动态路由的配置示例,以及如何创建和使用自定义过滤器。
摘要由CSDN通过智能技术生成

目录

1、概念

1.1、作用

1.2、微服务中网关位置

1.3、核心功能

1.3.1、路由(Route)

1.3.2、断言(Predicate)

1.3.3、过滤(Filter)

1.4、Gateway工作流程

1.4.1、流程

1.4.2、过滤器链

2、Gateway使用

2.1、固定IP地址进行路由

2.1.1、POM文件

2.1.2、yaml配置文件

2.1.3、业务类可以不添加业务类

2.1.4、主启动类

2.1.5、添加匹配的路由地址

2.2、动态路由(利用微服务名称)

2.2.1、POM文件同2.1.1

2.2.2、yaml配置文件

3、断言(Predicate)

3.1、作用

3.2、Gateway断言类型

4、过滤器(Filter)

4.1、概念

4.2、分类

4.2.1、生命周期

4.2.2、作用范围

4.3、Gateway自带Filter

4.4、自定义过滤器

4.4.1、新建过滤器实现类

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,没有规定规则但要求唯一,建议配合服务名
 
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值