java / expert
Snippet
ExchangeFilterFunction für globale Resilienz im WebClient
ExchangeFilterFunctions fungieren als Interceptoren für den WebClient und ermöglichen die Implementierung übergreifender Aspekte wie Logging, Retries oder Auth-Token-Injektion für alle ausgehenden reaktiven Anfragen.
snippet.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
public ExchangeFilterFunction retryFilter() {return (request, next) -> next.exchange(request).flatMap(response -> {if (response.statusCode().is5xxServerError()) {return Mono.error(new RuntimeException("Server Error"));}return Mono.just(response);}).retryWhen(Retry.fixedDelay(3, Duration.ofSeconds(2)));}@Beanpublic WebClient webClient() {return WebClient.builder().filter(retryFilter()).build();}
spring
Erklärung
1
next.exchange(request)
Setzt die Request-Kette zum nächsten Filter oder zum finalen Netzwerkaufruf fort.
2
retryWhen(Retry.fixedDelay(...))
Konfiguriert eine reaktive Retry-Strategie für fehlgeschlagene Anfragen basierend auf der definierten Dauer.