Puhverserveri vead Spring WebClientis: reaktiivne käsitlemine versus logimine
Eristage WebClienti reaktiivset veasignaali, transpordi logimist ja HTTP-oleku käsitlemist puhverserveri tõrke ajal.
Transport võib logida ebaõnnestunud puhverserveri ühenduse, samal ajal kui rakendus saab reaktiivse vea kätte ja käsitleb seda. Ainult logikirje ei tõenda, et rakenduse handler jäeti vahele.
Jälgige veasignaali ahelas, millele tegelikult tellitakse. try/catch ümber koodi, mis ainult loob Mono, on teine ulatus kui hilisema võrgutõrke käsitlemine.
| Operaator | Mõju |
|---|---|
| doOnError | Teeb kõrvalmõju, samal ajal kui viga jätkub |
| onErrorMap | Muundab vea teiseks veaks |
| onErrorResume | Lülitub alternatiivsele avaldajale |
Valige käitumine, mida rakendus vajab. Mõõdiku salvestamine ei nõua võltsi õnnestunud sisu tagastamist. Alternatiivne vastus peaks olema rakenduse teadlik tulemus, mitte viis ebaõnnestunud marsruudi peitmiseks.
Eristage ka transpordierandeid saadud HTTP-veaolekutest. Puhverserveri ühendus võib ebaõnnestuda enne, kui tavaline sihtkoha vastus on olemas, seega võib HTTP-oleku handleril olla midagi kontrollida. Säilitage WebClientRequestExceptioni põhjus madalama taseme tõrke diagnoosimisel.
Kohandage logimist alles pärast tulemuse mõistmist. Kogu transpordilogi väljalülitamine võib eemaldada tõendid, mida on vaja hilisema ajalõpu, TLS-probleemi või autentimistõrke jaoks, muutmata reaktiivse konveieri käitumist.