相关疑难解决方法(0)

虚假客户和春季重试

我有一个宁静的服务,使用Spring Cloud Feign客户端调用外部服务

@FeignClient(name = "external-service", configuration = FeignClientConfig.class)
public interface ServiceClient {

    @RequestMapping(value = "/test/payments", method = RequestMethod.POST)
    public void addPayment(@Valid @RequestBody AddPaymentRequest addPaymentRequest);

    @RequestMapping(value = "/test/payments/{paymentId}", method = RequestMethod.PUT)
    public ChangePaymentStatusResponse updatePaymentStatus(@PathVariable("paymentId") String paymentId,
            @Valid @RequestBody PaymentStatusUpdateRequest paymentStatusUpdateRequest);

}
Run Code Online (Sandbox Code Playgroud)

最近3个月,我在日志文件中发现3-4次以下失败:

json.ERROR_RESPONSE_BODY:连接拒绝执行POST http:// external-service / external / payments json.message:发送付款添加付款失败出于其他原因:{ERROR_RESPONSE_BODY =连接拒绝执行POST http:// external-service / external / payments,EVENT = ADD_PAYMENT_FAILURE,TRANSACTION_ID = XXXXXXX} {} json.EVENT:ADD_PAYMENT_FAILURE json.stack_trace:feign.RetryableException:连接拒绝执行POST http:// external-service / external / payments 在feign.FeignException.errorExecuting(FeignException.java:67)在feign.SynchronousMethodHandler.executeAndDecode(SynchronousMethodHandler.java:104)在feign.SynchronousMethodHandler.invoke(SynchronousMethodHandler.java:76)在feign.ReflectiveFeign $ FeignInvocationHandler.invoke(Reflective) Java:103)

是否可以在Feign客户端上添加Spring Retry。我想用什么来注释addPayment操作

@Retryable(value …
Run Code Online (Sandbox Code Playgroud)

spring spring-retry spring-boot spring-cloud spring-cloud-feign

7
推荐指数
1
解决办法
1万
查看次数