Ich habe einen erholsamen Service einen externen Dienstleister mit Spring Wolke Feign ClientFeign Client und Spring Wiederholungs
@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);
}
Ich bemerkte den folgenden Ausfall 3-4 mal in den letzten 3 Monaten in meiner Log-Datei aufrufen:
json.ERROR_RESPONSE_BODY: Verbindung Ausführung verweigert POST http://external-service/external/payments json.message: Sende Zahlung hinzufügen Failure Zahlung Für anderen Grund: {ERROR_RESPONSE_BODY = Verbindung Ausführung verweigert POST http://external-service/external/payments, EVENT = ADD_PAYMENT_FAILURE, TRANSACTION_ID = XXXXXXX} { } json.EVENT: ADD_PAYMENT_FAILURE json.stack_trace: feign.RetryableException: Verbindung verweigert POST ausführt http://external-service/external/payments bei feign.FeignException.errorExecuting (FeignException.java:67) bei feign.SynchronousMethodHandler.executeAndDecode (SynchronousMethodHandler.java:104) bei feign.SynchronousMethodHandler.invoke (SynchronousMethodHandler.java:76) bei feign.ReflectiveFeign $ FeignInvocationHandler.invoke (ReflectiveFeign.java:103)
Ist es möglich, Spring Retry auf einem Feign-Client hinzuzufügen? Was ich den addPayment
Betrieb mit
@Retryable(value = {feign.RetryableException.class }, maxAttempts = 3, backoff = @Backoff(delay = 2000, multiplier=2))
Aber dies ist nicht möglich, was andere Möglichkeiten habe ich mit Anmerkungen versehen wollte?
Können Sie dem Codebeispiel benutzerdefinierte Retryer zeigt zeigen? Wie konfiguriere ich Wiederholung nur für feign.RetryableException und max Versuch = 3 und Backoff-Zeitraum 2 Sekunden zwischen Wiederholungen – Satya
Sie können nur Ihre eigenen Retry – Jeff