Spring WebClient प्रॉक्सी त्रुटियाँ: रिएक्टिव हैंडलिंग बनाम लॉगिंग
प्रॉक्सी विफलता के दौरान WebClient का रिएक्टिव त्रुटि संकेत, ट्रांसपोर्ट लॉगिंग और HTTP स्थिति हैंडलिंग में अंतर करें।
ट्रांसपोर्ट असफल प्रॉक्सी कनेक्शन को लॉग कर सकता है, जबकि एप्लिकेशन भी रिएक्टिव त्रुटि प्राप्त करके उसका हैंडलिंग करता है। केवल लॉग प्रविष्टि यह सिद्ध नहीं करती कि एप्लिकेशन का हैंडलर छोड़ दिया गया।
त्रुटि संकेत को उस श्रृंखला में ट्रेस करें जिसकी वास्तव में सदस्यता ली जाती है। केवल Mono बनाने वाले कोड के चारों ओर try/catch बाद की नेटवर्क विफलता के हैंडलिंग से भिन्न दायरा है।
| ऑपरेटर | प्रभाव |
|---|---|
| doOnError | त्रुटि जारी रहने के दौरान साइड इफ़ेक्ट करता है |
| onErrorMap | एक त्रुटि को दूसरी त्रुटि में बदलता है |
| onErrorResume | वैकल्पिक प्रकाशक पर स्विच करता है |
वह व्यवहार चुनें जिसकी एप्लिकेशन को आवश्यकता है। मीट्रिक रिकॉर्ड करने के लिए नकली सफल सामग्री लौटाना आवश्यक नहीं है। वैकल्पिक प्रतिक्रिया एप्लिकेशन का जानबूझकर दिया गया परिणाम होनी चाहिए, असफल मार्ग छिपाने का तरीका नहीं।
ट्रांसपोर्ट अपवादों को प्राप्त HTTP त्रुटि स्थितियों से भी अलग रखें। प्रॉक्सी कनेक्शन सामान्य गंतव्य प्रतिक्रिया के अस्तित्व से पहले ही विफल हो सकता है, इसलिए HTTP स्थिति हैंडलर के पास जाँचने को कुछ न हो। निचले स्तर की विफलता का निदान करते समय WebClientRequestException का कारण सुरक्षित रखें।
परिणाम समझने के बाद ही लॉगिंग समायोजित करें। पूरा ट्रांसपोर्ट लॉगर बंद करने से बाद के टाइमआउट, TLS समस्या या प्रमाणीकरण विफलता के लिए आवश्यक साक्ष्य हट सकते हैं, रिएक्टिव पाइपलाइन का व्यवहार बदले बिना।