概述
路由断言工厂Route Predicate Factory spring 的官方文档
网关路由可以配置的内容包括:
- 路由id:路由唯一标示
- uri:路由目的地,支持lb和http两种
- predicates:路由断言,判断请求是否符合要求,符合则转发到路由目的地
- filters:路由过滤器,处理请求或响应
我们在配置文件中写的断言规则只是字符串,这些字符串会被Predicate Factory读取并处理,转变为路由判断的条件
例如Path=/user/**
是按照路径匹配,这个规则是由org.springframework.cloud.gateway.handler.predicate.PathRoutePredicateFactory
类来处理的
像这样的断言工厂在SpringCloudGateway还有十一个,如下:
实践
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] #在亚洲上海的这个时间之后才可以访问