Potrzebuję zrealizować taki scenariusz: Uderzam do gateway'a, on uderza do service 1 i zwraca wynik. Jednak w przypadku, gdy service 1 zwróci 4xx, lub 5xx chcę automatycznie zrobić fallback. Myślałem, że da się to zrealizować w Spring cloud gateway, ale albo się nie da albo ja jestem ślepy. W każdym tutorialu jest coś na wzór:
@Bean
public RouteLocator myRoutes(RouteLocatorBuilder builder) {
return builder.routes()
.route(p -> p
.path("/employee/message")
.filters(f ->
f.hystrix(config -> config
.setName("countries-service")
.setFallbackUri("forward:/countriesfallback"))
)
.uri("http://localhost:8081")
)
.build();
}
I tutaj jest prawie okej, bo jak /employee/message się wywali, to poleci fallback na /countriesfallback, ale do usługi, która jest w tym samym projekcie co gateway. Niestety nie działa opcja wpisania: forward:/http://service3/countriesfallback. W takiej sytuacji muszę tworzyć usługę /countriesfallback, która WebClientem strzela mi do service3. Bez sensu. Da się jakoś to zrobić w cloud gateway, albo ktoś zna inną wartą uwagi bibliotekę?