GateWay commonly used Predicate (assertion) Path, Header, Cookie, After..

How to configure GateWay

pom dependencies

 <!--gateway-->
<dependency>
   <groupId>org.springframework.cloud</groupId>
   <artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>

application.yml

server:
  port: 9527

spring:
  application:
    name: cloud-gateway
  cloud:
    gateway:
      discovery:
        locator:
          enabled: true #开启从注册中心动态创建路由的功能,利用微服务名进行路由
      routes:
        - id: payment_routh #payment_route    #路由的ID,没有固定规则但要求唯一,建议配合服务名
          #uri: http://localhost:8001          #匹配后提供服务的路由地址
          uri: lb://cloud-provider-service #匹配后提供服务的路由地址
          predicates:
            - Path=/payment/get/**         # 断言,路径相匹配的进行路由

        - id: payment_routh2 #payment_route    #路由的ID,没有固定规则但要求唯一,建议配合服务名
          #uri: http://localhost:8001          #匹配后提供服务的路由地址
          uri: lb://cloud-provider-service #匹配后提供服务的路由地址
          predicates:
              - Path=/payment/lb/**
              - Header=X-Request-Id, \d+   #请求头要有  X-Request-Id属性并且值为整数的正则表达式
#              - Cookie=username,lxw   #Cookie=cookieName,正则表达式
              # 在这个时间之后才起效这个接口,例如秒杀
#              - After=2022-08-11T23:36:46.145+08:00[Asia/Shanghai]
#              - Before=2022-08-11T23:39:30.145+08:00[Asia/Shanghai]
#              - Header=X-Request-Id, \d+
#              - Host=**.atguigu.com  # curl http://localhost:9527/payment/lb -H "Host:afae.atguigu.com"
eureka:
  instance:
    hostname: cloud-gateway-service
  client: #服务提供者provider注册进eureka服务列表内
    service-url:
      register-with-eureka: true
      fetch-registry: true
      defaultZone: http://eureka7001.com:7001/eureka

Starting this microservice prompts us with these assertions

 

 Loaded RoutePredicateFactory [After]
 Loaded RoutePredicateFactory [Before]
 Loaded RoutePredicateFactory [Between]
 Loaded RoutePredicateFactory [Cookie]
 Loaded RoutePredicateFactory [Header]
 Loaded RoutePredicateFactory [Host]
 Loaded RoutePredicateFactory [Method]
 Loaded RoutePredicateFactory [Path]
 Loaded RoutePredicateFactory [Query]
 Loaded RoutePredicateFactory [ReadBodyPredicateFactory]
 Loaded RoutePredicateFactory [RemoteAddr]
 Loaded RoutePredicateFactory [Weight]
 Loaded RoutePredicateFactory [CloudFoundryRouteService]

The code is as follows: EDIT tested with CURL
wAAACH5BAEKAAAAAAAAAABAAEAAAICRAEAOw==

 

Guess you like

Origin blog.csdn.net/weixin_46310452/article/details/126295646