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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM