0 Tage Serie
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
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)));
}
@Bean
public 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.