Spring Cloud problem z timeoutem

0

Hej!

Mam nastepujacy problem:
Projekt RESTowy w architekturze mikrousług, gdzie zarządza nimi Consul a do komunikacji pomiedzy nimi wykorzystywany jest klient Feign ze Spring Clouda. Problem polega na tym, ze jedna usluga wywoluje drugą np. mikroserwis do autoryzacji, ktory dodaje konto uzytkownikowi, ale nie wiadomo ile to potrwa. Jesli przekroczony zostanie timeout to usluga ktora wywoluje mikroserwis autoryzacji co prawda rzuci wyjatek i przestanie nasluchiwac na odpowiedz z mikroserwisu autoryzacji, ale co z tego skoro konto uzytkownika sie doda ostatecznie (problem taki, ze w zbyt dlugim czasie i nikt na odpowiedz juz nie czeka). Oczekiwane zachowanie jest takie, ze mikroserwis autoryzacji dokona rollbacka dodania konta no bo operacja zakonczyla sie niepowodzeniem ze wzgledu na timeout. Pytanie czy da sie poinformowac ten mikroserwis, ze juz nikt na jego odpowiedz nie czeka i ze trzeba cofnac to co sie dokonalo? Czy mozna jakos to zrobic w konfiguracji Feigna, Hystrixa, Springa? Nic takiego nie udalo mi sie znalezc.

Wyjątek rzucany w serwisie ktory wywoluje serwis autoryzacji to:

feign.RetryableException: Read timed out executing POST http://auth-service/accounts
0

Hej, mozesz zdefiniowac timeouty w mikroserwisie autoryzacji (w rx javie, reactorze, hystrixie, resillience4j czy co tam chcesz) przez to tam poleci wyjatek, ktory przerwie to co robisz, a dalej rzuci 500, czyli drugi serwis, ktory z niego korzysta zostanie o tym powiadomiony.

1 użytkowników online, w tym zalogowanych: 0, gości: 1