שגיאות פרוקסי ב-Spring WebClient: טיפול ריאקטיבי לעומת רישום ביומן
הבחינו בין אות השגיאה הריאקטיבי של WebClient, רישום שכבת התעבורה וטיפול בסטטוס HTTP בזמן כשל פרוקסי.
שכבת התעבורה יכולה לרשום חיבור פרוקסי כושל, בעוד היישום גם מקבל ומטפל בשגיאה הריאקטיבית. רשומת היומן לבדה אינה מוכיחה שמטפל היישום דולג.
עקבו אחרי אות השגיאה בשרשרת שאליה באמת נרשמים. try/catch סביב קוד שרק בונה Mono הוא היקף שונה מטיפול בכשל רשת מאוחר יותר.
| אופרטור | השפעה |
|---|---|
| doOnError | מבצע תוצאת לוואי בזמן השגיאה נמשכת |
| onErrorMap | הופך שגיאה לשגיאה אחרת |
| onErrorResume | עובר למוציא לאור חלופי |
בחרו בהתנהגות שההיישום צריך. רישום מדד אינו מחייב החזרת תוכן הצלחה מזויף. תגובה חלופית צריכה להיות תוצאה מכוונת של היישום, לא דרך להסתיר מסלול כושל.
הבחינו גם בין חריגות תעבורה לבין סטטוסי שגיאת HTTP שהתקבלו. חיבור פרוקסי יכול להיכשל לפני שקיימת תגובה רגילה מהיעד, ולכן ייתכן שלמטפל סטטוס HTTP אין מה לבדוק. שמרו על הסיבה של WebClientRequestException בעת אבחון הכשל הנמוך יותר.
כווננו את הרישום רק לאחר שהבנתם את התוצאה. כיבוי כל רושם התעבורה עלול להסיר ראיות הדרושות לפסק זמן, לבעיית TLS או לכשל אימות מאוחרים, בלי לשנות את התנהגות הצינור הריאקטיבי.