Proxyfeil i Spring WebClient: reaktiv håndtering kontra logging
Skill mellom WebClients reaktive feilsignal, transportlogging og HTTP-statusbehandling under en proxyfeil.
Transporten kan logge en mislykket proxyforbindelse mens applikasjonen også mottar og håndterer den reaktive feilen. Selve loggoppføringen beviser ikke at applikasjonens handler ble hoppet over.
Følg feilsignalet i kjeden som faktisk abonneres på. En try/catch rundt kode som bare bygger en Mono, er et annet omfang enn håndtering av en senere nettverksfeil.
| Operatør | Effekt |
|---|---|
| doOnError | Utfører en bivirkning mens feilen fortsetter |
| onErrorMap | Omdanner en feil til en annen feil |
| onErrorResume | Bytter til en alternativ utgiver |
Velg atferden applikasjonen trenger. Å registrere en metrikk krever ikke at falskt vellykket innhold returneres. Et alternativt svar bør være et bevisst applikasjonsresultat, ikke en måte å skjule en mislykket rute.
Skill også mellom transportunntak og mottatte HTTP-feilstatuser. En proxyforbindelse kan feile før det finnes et vanlig svar fra målet, så en HTTP-statusbehandler har kanskje ingenting å undersøke. Bevar årsaken til en WebClientRequestException når den underliggende feilen diagnostiseres.
Juster loggingen først etter at resultatet er forstått. Å slå av hele transportloggeren kan fjerne bevis som trengs for en senere tidsavbrudd, et TLS-problem eller en autentiseringsfeil, uten å endre atferden til den reaktive pipelinen.