Spring Cloud 学习笔记 —— 服务网关 Gateway 的 Filter

12.4 Gateway 的 Filter

1.介绍

  • Gateway 的 Filter 使用位置只有 “pre”、“post” 两种,比 Zuul 简单
  • 过滤器分为 GatewayFilter 和 GlobalFilter
    GatewayFilter 是单个或一组的过滤器
    GlobalFilter 是全局过滤器
  • 接下来使用其中的一种,请求参数过滤器,并验证通过 Gateway 端口调用其他微服务

2.请求参数过滤器

  • 1.添加 eureka 依赖
		<dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-netflix-eureka-clientartifactId>
        dependency>
  • 2.修改 application.yml 配置
spring:
  cloud:
    gateway:
      routes:
        - id: javaboy-route
          uri: lb://provider
          filters:
            - AddRequestParameter=name,javaboy
          predicates:
            - Method=GET
  application:
    name: gateway
eureka:
  client:
    service-url:
      defaultZone: http://localhost:1111//eureka

uri: lb://provider中 lb 是 loadBalanceDiscovery 的缩写,Get 的所有请求会去注册中心找服务名是 provider 的服务,然后把请求转发过去,- AddRequestParameter=name,javaboy是请求参数过滤器的配置,所以符合转发的请求,加上参数名为 name,参数值为 javaboy 的参数配置。

eureka:
  client:
    service-url:
      defaultZone: http://localhost:1111//eureka

是把服务注册到 eureka

  • 3.启动 eureka、gateway、provider 服务,查看 eureka server

Spring Cloud 学习笔记 —— 服务网关 Gateway 的 Filter_第1张图片
Spring Cloud 学习笔记 —— 服务网关 Gateway 的 Filter_第2张图片

  • 4.验证请求参数过滤器
    直接访问 provider 中的 hello2 接口:
    Spring Cloud 学习笔记 —— 服务网关 Gateway 的 Filter_第3张图片
    拼接上请求参数访问 provider 中的 hello2 接口:
    Spring Cloud 学习笔记 —— 服务网关 Gateway 的 Filter_第4张图片
    通过 gateway 服务直接访问 hello2 接口:
    在这里插入图片描述
    与请求地址中拼接上请求参数是一样的,说明请求参数过滤器的配置- AddRequestParameter=name,javaboy生效了

3.总结

这里简单的通过 application.yml 文件的配置,验证了 Gateway 组件中 Filter 的一种

你可能感兴趣的:(#,Gateway,Spring,Cloud,笔记,Spring,cloud,Gateway-filter)