Hitilafu za proksi katika Spring WebClient: ushughulikiaji tendaji dhidi ya uandikaji kumbukumbu
Tofautisha ishara ya hitilafu tendaji ya WebClient, uandikaji kumbukumbu wa usafirishaji na ushughulikiaji wa hali ya HTTP wakati proksi inashindikana.
Usafirishaji unaweza kuandika kumbukumbu ya muunganisho wa proksi ulioshindikana huku programu pia ikipokea na kushughulikia hitilafu tendaji. Kumbukumbu pekee haithibitishi kwamba mshughulikiaji wa programu ulirukwa.
Fuatilia ishara ya hitilafu katika mnyororo unaojiandikisha kwa hakika. try/catch kuzunguka msimbo unaojenga Mono pekee ni wigo tofauti na kushughulikia hitilafu ya mtandao inayokuja baadaye.
| Opereta | Athari |
|---|---|
| doOnError | Hufanya athari ya pembeni wakati hitilafu inaendelea |
| onErrorMap | Hubadilisha hitilafu moja kuwa hitilafu nyingine |
| onErrorResume | Hubadilika kwenda kuchapishaji mbadala |
Chagua tabia ambayo programu inahitaji. Kurekodi kipimo hakuhitaji kurudisha maudhui ya mafanikio ya uongo. Jibu mbadala linapaswa kuwa matokeo ya kusudi la programu, si njia ya kuficha njia iliyoshindikana.
Pia tofautisha mitemo ya usafirishaji na hali za hitilafu za HTTP zilizopokelewa. Muunganisho wa proksi unaweza kushindikana kabla ya jibu la kawaida la lengwa kuwepo, kwa hivyo mshughulikiaji wa hali ya HTTP anaweza kuwa hana cha kuchunguza. Hifadhi sababu ya WebClientRequestException unapochunguza hitilafu ya ngazi ya chini.
Rekebisha uandikaji kumbukumbu baada tu ya kuelewa matokeo. Kuzima kirekodi kumbukumbu chote cha usafirishaji kunaweza kuondoa ushahidi unaohitajika kwa muda wa kumalizika, tatizo la TLS au hitilafu ya uthibitishaji baadaye, bila kubadilisha tabia ya bomba tendaji.