Starpniekservera kļūdas Spring WebClient: reaktīva apstrāde pret reģistrēšanu
Atšķiriet WebClient reaktīvo kļūdas signālu, transporta reģistrēšanu un HTTP statusa apstrādi starpniekservera kļūmes laikā.
Transports var reģistrēt neizdevušos starpniekservera savienojumu, kamēr lietojumprogramma arī saņem un apstrādā reaktīvo kļūdu. Tikai žurnāla ieraksts nepierāda, ka lietojumprogrammas apstrādātājs tika izlaists.
Sekojiet kļūdas signālam ķēdē, kurai faktiski tiek abonēts. try/catch ap kodu, kas tikai veido Mono, ir cits apjoms nekā vēlākas tīkla kļūmes apstrāde.
| Operators | Ietekme |
|---|---|
| doOnError | Veic blakusefektu, kamēr kļūda turpinās |
| onErrorMap | Pārveido kļūdu citā kļūdā |
| onErrorResume | Pārslēdzas uz alternatīvu publicētāju |
Izvēlieties uzvedību, kas lietojumprogrammai nepieciešama. Metrikas reģistrēšana neprasa atgriezt viltus veiksmīgu saturu. Alternatīvajai atbildei jābūt apzinātam lietojumprogrammas rezultātam, nevis veidam, kā paslēpt neizdevušos maršrutu.
Atšķiriet arī transporta izņēmumus no saņemtajiem HTTP kļūdas statusiem. Starpniekservera savienojums var neizdoties pirms parastas galamērķa atbildes pastāvēšanas, tāpēc HTTP statusa apstrādātājam var nebūt ko pārbaudīt. Saglabājiet WebClientRequestException cēloni, diagnosticējot zemāka līmeņa kļūmi.
Pielāgojiet reģistrēšanu tikai pēc rezultāta izpratnes. Visa transporta reģistrētāja izslēgšana var noņemt pierādījumus, kas nepieciešami vēlākam noildzei, TLS problēmai vai autentifikācijas kļūmei, nemainot reaktīvās plūsmas uzvedību.