Σφάλματα διαμεσολαβητή στο Spring WebClient: αντιδραστική διαχείριση έναντι καταγραφής
Διακρίνετε το αντιδραστικό σήμα σφάλματος του WebClient, την καταγραφή του μεταφορέα και τη διαχείριση κατάστασης HTTP κατά την αποτυχία διαμεσολαβητή.
Ο μεταφορέας μπορεί να καταγράψει μια αποτυχημένη σύνδεση διαμεσολαβητή, ενώ η εφαρμογή λαμβάνει επίσης και χειρίζεται το αντιδραστικό σφάλμα. Η καταχώριση στο αρχείο καταγραφής από μόνη της δεν αποδεικνύει ότι ο χειριστής της εφαρμογής παραλείφθηκε.
Ακολουθήστε το σήμα σφάλματος στην αλυσίδα που πραγματικά εγγράφεται. Ένα try/catch γύρω από κώδικα που απλώς κατασκευάζει ένα Mono είναι διαφορετικό πεδίο από τον χειρισμό ενός μεταγενέστερου σφάλματος δικτύου.
| Τελεστής | Επίδραση |
|---|---|
| doOnError | Εκτελεί παρενέργεια όσο το σφάλμα συνεχίζεται |
| onErrorMap | Μετατρέπει ένα σφάλμα σε άλλο σφάλμα |
| onErrorResume | Μεταβαίνει σε εναλλακτικό εκδότη |
Επιλέξτε τη συμπεριφορά που χρειάζεται η εφαρμογή. Η καταγραφή μιας μετρικής δεν απαιτεί την επιστροφή ψευδούς επιτυχημένου περιεχομένου. Μια εναλλακτική απόκριση πρέπει να είναι σκόπιμο αποτέλεσμα της εφαρμογής, όχι τρόπος απόκρυψης μιας αποτυχημένης διαδρομής.
Διακρίνετε επίσης τις εξαιρέσεις του μεταφορέα από τις λαμβανόμενες καταστάσεις σφάλματος HTTP. Μια σύνδεση διαμεσολαβητή μπορεί να αποτύχει πριν υπάρξει συνηθισμένη απόκριση προορισμού, οπότε ένας χειριστής κατάστασης HTTP μπορεί να μην έχει τι να εξετάσει. Διατηρήστε την αιτία μιας WebClientRequestException κατά τη διάγνωση της χαμηλότερης αποτυχίας.
Ρυθμίστε την καταγραφή μόνο αφού κατανοήσετε το αποτέλεσμα. Η πλήρης απενεργοποίηση του καταγραφέα μεταφορέα μπορεί να αφαιρέσει στοιχεία που χρειάζονται για μεταγενέστερο χρονικό όριο, πρόβλημα TLS ή αποτυχία ελέγχου ταυτότητας, χωρίς να αλλάξει η συμπεριφορά του αντιδραστικού αγωγού.