springcloud中 getway中的断言配置: Predicate 9中配置过程, getway的 filters实现限流功能:

https://www.cnblogs.com/grasp/p/11506426.html

这里引用别人的,,且试验过 ,没问题

server:
  port: 9527
spring:
  application:
    name: cloud-gateway
  cloud:
    gateway:
      routes:
        - id: payment_routh #路由的ID,没有固定规则但要求唯一,建议配合服务名
          uri: lb://CLOUD-PAYMENT-SERVICE   #匹配后提供服务的路由地址
          predicates:
          #  - Path=/payment/get/**         # 断言,路径相匹配的进行路由
          #  - Between=2020-08-18T09:57:59.384+08:00[Asia/Shanghai],2020-08-18T10:03:00.384+08:00[Asia/Shanghai]
          - Cookie=keyName, .*cook.*     # 浏览器中 设置cookie, 或者 cmd中: curl http://localhost:9527/payment/get/1  --cookie "keyName="cookie"  这里判断cookie的 keyName是否包含"cook" 是的话就路由到对应的服务上去
          #  - Header=X-Request-Id, d+     # cmd中: curl http://localhost:9527/payment/get/1 -H "X-Request-Id:123"   这里发送请求,getway判断Header中请求头是否是X-Request-Id, 且值是否是数字,是的话就路由到 服务上去,负载均衡
          #  - Host=**.baidu.com            # cmd中: curl http://localhost:9527/payment/get/1 -H "Host: www.baidu.com"  这里发送请求,getway判断请求中的 host是否是**.baidu.com,是的话就路由到 服务上去,负载均衡
          #  - Method=GET                   # 这里请求是否是 GET PUT POST DELETE请求, 是的话就路由到对应服务商
          #  - Path=/payment/**             # 这里表示请求路径是否符合要求 http://127.0.0.1:9527/payment/get/1, 是符合的,所以路由到对应的服务上去
          #  - Query=username, .*lvcai.*    # 这里表示可以传二个值, 第二个值可以是正则表达式 ,  cmd中: curl http://localhost:9527/payment/get/1?username="lvcai"  这里判断userame是否包含"lvcai",是的话,就路由到对应服务上去

        - id: payment_routh2
          uri: lb://CLOUD-PAYMENT-SERVICE
          predicates:
            - Path=/payment/lb/**   #断言,路径相匹配的进行路由


eureka:
  instance:
    hostname: cloud-gateway-service
  client:
    service-url:
      register-with-eureka: true
      fetch-registry: true
      defaultZone: http://eureka7001.com:7001/eureka

getway的 filters实现限流功能:
https://blog.csdn.net/u014677702/article/details/85888403

原文地址:https://www.cnblogs.com/lvcai/p/13522082.html