概述

路由断言工厂Route Predicate Factory spring 的官方文档

网关路由可以配置的内容包括:

  • 路由id:路由唯一标示
  • uri:路由目的地,支持lb和http两种
  • predicates:路由断言,判断请求是否符合要求,符合则转发到路由目的地
  • filters:路由过滤器,处理请求或响应

我们在配置文件中写的断言规则只是字符串,这些字符串会被Predicate Factory读取并处理,转变为路由判断的条件
例如Path=/user/**是按照路径匹配,这个规则是由org.springframework.cloud.gateway.handler.predicate.PathRoutePredicateFactory类来处理的
像这样的断言工厂在SpringCloudGateway还有十一个,如下:

image-1655619946295

实践

server:
  port: 10010
spring:
  application:
    name: gateway
  cloud:
    nacos:
      server-addr: localhost:8848
    gateway:
      routes:
        - id: user-service #路由表示,必须唯一
          uri: lb://userservice # 路由的目标地址
          predicates:
            - Path=/user/** #路径判断,判断路径是否是以/user开头,如果是则符合
        - id: order-service #路由表示,必须唯一
          uri: lb://orderservice # 路由的目标地址
          predicates:
            - Path=/order/** #路径判断,判断路径是否是以/user开头,如果是则符合
            - After=2031-01-20T17:42:47.789+07:00[Asia/Shanghai] #在亚洲上海的这个时间之后才可以访问

测试

image-1655620532626