Proxyhibák a Spring WebClientben: reaktív kezelés kontra naplózás
Különböztesse meg a WebClient reaktív hibajelét, a transzport naplózását és a HTTP-státusz kezelését proxyhiba esetén.
A transzport naplózhat egy sikertelen proxykapcsolatot, miközben az alkalmazás is megkapja és kezeli a reaktív hibát. A naplóbejegyzés önmagában nem bizonyítja, hogy az alkalmazás kezelője kimaradt.
Kövesse a hibajelet abban a láncban, amelyre ténylegesen feliratkoznak. A csupán Mono-t építő kód körüli try/catch más hatókör, mint egy későbbi hálózati hiba kezelése.
| Operátor | Hatás |
|---|---|
| doOnError | Mellékhatást hajt végre, miközben a hiba folytatódik |
| onErrorMap | Egy hibát másik hibává alakít |
| onErrorResume | Átvált egy alternatív kiadóra |
Válassza azt a viselkedést, amelyre az alkalmazásnak szüksége van. Egy metrika rögzítése nem igényel hamis sikeres tartalmat visszaadó választ. Az alternatív válasznak szándékos alkalmazáseredménynek kell lennie, nem a sikertelen útvonal elrejtésének módjának.
Különböztesse meg a transzportkivételeket a fogadott HTTP-hibastátuszoktól is. A proxykapcsolat meghiúsulhat, mielőtt egy szokásos célválasz létezne, így előfordulhat, hogy a HTTP-státusz kezelőjének nincs mit megvizsgálnia. Őrizze meg a WebClientRequestException okát az alacsonyabb szintű hiba diagnosztizálásakor.
Csak az eredmény megértése után módosítsa a naplózást. A teljes transzportnaplózó kikapcsolása eltávolíthatja a későbbi időtúllépéshez, TLS-problémához vagy hitelesítési hibához szükséges bizonyítékokat, anélkül hogy megváltoztatná a reaktív folyamat viselkedését.