Synchroniczna komunikacja pomiędzy serwisami i timeout

0

Mamy serwisy komunikujące się między sobą:

A -> B -> C

Jak A ma mniejszy timeout niż B i zamknie połączenie
w trakcie gdy B czeka na C, B będzie czekało i marnowało
zasoby mimo, że już połączenie A<->B jest zamknięte?

Czy da się temu jakoś zapobiec poza ustawieniem timeout'ow
im dalej w głąb tym mniejszy i czy wgl jest sens robienia z tym
czegokolwiek?

Jak to jest w przypadku serwera asynchronicznego np. nieblokujący undertow?

3

Gdzieś widziałem jakiś artykuł chyba od Netfliksa jak do tego podejść. Zauważ, że oprócz timeoutow masz jeszcze retry’e, wiec to się tak naprawdę mnoży. Ja bym ustalił „budżet” na poziomie A i odpowiednio kaskadował w dół.

Sytuacji, która opisałeś da się uniknąć stosując circuit breaker.

Undertow tutaj niewiele pomoże, bo wątek z jakiejś puli dalej będzie czekał na odpowiedz. To, co jest game changerem, to serwer reaktywny taki jak Netty - tam masz zdecouplowane wątki od obsługi I/O.

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