Spring Cloud Gateway 重试不起作用

问题描述 投票:0回答:1

在我们的组织中,目前我们正在使用基于 mule 的 RAML API(版本3.9.0),该 API 存在 CVE 安全问题。 因此,我们计划使用 Spring Cloud Gateway 更改我们的 API。 我对此有点陌生,因此在集成到实际应用程序之前先探索网关功能。 我在重试 GatewayFilter 中遇到问题,它没有对配置的失败情况进行重试。 这是我的配置,

spring:
  application:
    name: tp-demo-ms

  cloud:
    gateway:
      routes:
      - id: demo-router
        uri: http://localhost:8080/demo/hello/{name}
        predicates:
        - Path=/demo/hello/** 
        - Host=**10.1.0.0**
        - Method=GET
        filters:
        - name: Retry
          args:
            retries: 3
            statuses: BAD_GATEWAY, GATEWAY_TIMEOUT, INTERNAL_SERVER_ERROR,**NOT_FOUND**
            methods: POST
            backoff:
             ** firstBackoff: 10ms
              maxBackoff: 50ms**
              factor: 2
              basedOnPreviousValue: false

我在调用另一个微服务时遇到以下异常,

{"timestamp":"2023-05-16T10:06:02.203+05:30","version":"1","message":"已执行==>'/demo/hello/'状态为[404未找到]"}

非常感谢对此的任何帮助。

我尝试到达端点

http://localhost:8888/demo/hello/name
,它抛出 404 NOT_FOUND 异常。

但它没有按照我的重试退避配置进行重试。 当我从控制台到达端点后,我可以看到没有重试发生。

spring cloud gateway
1个回答
0
投票

我认为你应该用

uri : http://localhost:8080/demo/hello/{name}
替换
uri : http://localhost:8080
因为你已经将路径与
predicates : - Path : /demo/hello/**

匹配

我建议你阅读 Spring Cloud Gateway 文档,它非常有用。

https://cloud.spring.io/spring-cloud-gateway/reference/html/

此外,您还可以使用eureka进行注册服务。

© www.soinside.com 2019 - 2024. All rights reserved.