Spring WebClient లో ప్రాక్సీ లోపాలు: రియాక్టివ్ హ్యాండ్లింగ్ మరియు లాగింగ్
ప్రాక్సీ వైఫల్య సమయంలో WebClient యొక్క రియాక్టివ్ లోప సంకేతం, ట్రాన్స్పోర్ట్ లాగింగ్ మరియు HTTP స్థితి హ్యాండ్లింగ్లను వేరు చేయండి.
ట్రాన్స్పోర్ట్ విఫలమైన ప్రాక్సీ కనెక్షన్ను లాగ్ చేయవచ్చు, అదే సమయంలో అప్లికేషన్ కూడా రియాక్టివ్ లోపాన్ని స్వీకరించి నిర్వహిస్తుంది. లాగ్ ఎంట్రీ మాత్రమే అప్లికేషన్ హ్యాండ్లర్ దాటవేయబడిందని నిరూపించదు.
నిజంగా సబ్స్క్రైబ్ అయ్యే చైన్లో లోప సంకేతాన్ని అనుసరించండి. కేవలం Mono నిర్మించే కోడ్ చుట్టూ ఉన్న try/catch తరువాతి నెట్వర్క్ వైఫల్యాన్ని నిర్వహించడం కంటే వేరే పరిధి.
| ఆపరేటర్ | ప్రభావం |
|---|---|
| doOnError | లోపం కొనసాగుతున్నప్పుడు పార్శ్వ ప్రభావాన్ని చేస్తుంది |
| onErrorMap | ఒక లోపాన్ని మరొక లోపంగా మారుస్తుంది |
| onErrorResume | ప్రత్యామ్నాయ ప్రచురణకర్తకు మారుతుంది |
అప్లికేషన్కు అవసరమైన ప్రవర్తనను ఎంచుకోండి. మెట్రిక్ నమోదు చేయడానికి నకిలీ విజయవంతమైన కంటెంట్ను తిరిగి ఇవ్వాల్సిన అవసరం లేదు. ప్రత్యామ్నాయ ప్రతిస్పందన అప్లికేషన్ ఉద్దేశపూర్వక ఫలితం కావాలి, విఫలమైన మార్గాన్ని దాచే మార్గం కాదు.
ట్రాన్స్పోర్ట్ మినహాయింపులను స్వీకరించిన HTTP లోప స్థితుల నుండి కూడా వేరు చేయండి. సాధారణ గమ్యస్థాన ప్రతిస్పందన ఉనికిలోకి రాకముందే ప్రాక్సీ కనెక్షన్ విఫలం కావచ్చు, కాబట్టి HTTP స్థితి హ్యాండ్లర్కు పరిశీలించడానికి ఏమీ ఉండకపోవచ్చు. దిగువ స్థాయి వైఫల్యాన్ని నిర్ధారించేటప్పుడు WebClientRequestException కారణాన్ని భద్రపరచండి.
ఫలితాన్ని అర్థం చేసుకున్న తర్వాతే లాగింగ్ను సర్దుబాటు చేయండి. మొత్తం ట్రాన్స్పోర్ట్ లాగర్ను ఆఫ్ చేయడం తరువాతి టైమ్అవుట్, TLS సమస్య లేదా ప్రామాణీకరణ వైఫల్యానికి అవసరమైన సాక్ష్యాలను తొలగించవచ్చు, రియాక్టివ్ పైప్లైన్ ప్రవర్తనను మార్చకుండా.