继续呼叫第三方,直到它与Hystrix返回预期的响应

我正在寻找一种从我的代码(Spring Boot应用程序)中调用第三方服务的方法,如果该方法无响应,我想重复调用x次,然后提供默认的备用。我找到了一个示例代码,该示例代码可能适用于Hystrix

public class Exampleclass {

    @HystrixCommand(fallbackMethod = "example_Fallback")
    public String myMethod() {

        // third party service
        String response = httpClient.execute();

        return "OK";
    }

    private String example_Fallback() {

        return "ERROR HAPPENED";
    }
}

但是,如果返回的正常响应是意外的,我还想重复调用相同的第三方服务x次(将特定响应视为第三方无响应)。这样做的原因是,第三方可能无法满足请求,而我只能在响应中进行检查。有人可以向我指出正确的方向,还是提供一个示例,说明如何使用Hystrix解决此问题?

heishashengzhe111 回答:继续呼叫第三方,直到它与Hystrix返回预期的响应

...我想重复通话x次,然后提供 默认后备广告。

配置circuitBreaker.requestVolumeThreshold可能会有所帮助。还要看看其他Hystrix properties

@HystrixCommand(fallbackMethod = "example_Fallback",commandProperties = {
   @HystrixProperty(name = "circuitBreaker.requestVolumeThreshold",value = "5"),@HystrixProperty(name = "metrics.rollingStats.timeInMilliseconds",value = "2000")
   }
)
public String myMethod() {
  ...
}

请注意,circuitBreaker.requestVolumeThreshold(引用)“ ...在滚动窗口中设置将使电路跳闸的最小请求数”。滚动窗口持续时间-metrics.rollingStats.timeInMilliseconds-默认为10秒。

Spring中还有@Retryable注释。

本文链接:https://www.f2er.com/2776652.html

大家都在问