SpringCloud入门(十一)路由过滤器和路由断言工厂-二、路由断言工厂


    路由过滤器( GatewayFilter  )是网关中提供的一种过滤器,可以对进入网关的请求和微服务返回的响应做处理:
如图:网关路由过滤器:

路由过滤器的作用是:
1.对路由的请求或响应做加工处理,比如添加请求头
2.配置在路由下的过滤器只对当前路由的请求生效

Spring提供了31种不同的路由过滤器工厂。例如:
官网:

名称           |     说明                    

-AddRequestHeader     | 给当前请求添加一个请求头     
 -RemoveRequestHeader  | 移除请求中的一个请求头       
 -AddResponseHeader    | 给响应结果中添加一个响应头   
-RemoveResponseHeader | 从响应结果中移除有一个响应头 
-RequestRateLimiter   | 限制请求的流量               

示例:给所有进入userservice的请求添加一个请求头:Truth=IT is freaking awesome!

实现方式:在gateway中修改application.yml文件,给userservice的路由添加过滤器:

只需要修改gateway服务的application.yml文件,添加路由过滤即可:

spring:
  cloud:
    gateway:
      routes:
      - id: user-service 
        uri: lb://userservice 
        predicates: 
        - Path=/user/** 
        filters: # 过滤器
        - AddRequestHeader=Truth, IT is freaking awesome! # 添加请求头

当前过滤器写在userservice路由下,因此仅仅对访问userservice的请求有效。
 

默认过滤器:defaultFilters的作用是:对所有路由都生效的过滤器
如果要对所有的路由都生效,则可以将过滤器工厂写到default下。格式如下:

spring:
  cloud:
    gateway:
      routes:
      - id: user-service 
        uri: lb://userservice 
        predicates: 
        - Path=/user/**
      default-filters: # 默认过滤项
      - AddRequestHeader=Truth, IT is freaking awesome! 
上一篇:利用PDLP扩展线性规划求解能力


下一篇:深度学习02:机器学习的组件