Պրոքսի սխալներ Spring WebClient-ում՝ ռեակտիվ մշակում ընդդեմ գրանցման
Տարբերեք WebClient-ի ռեակտիվ սխալի ազդանշանը, տրանսպորտի գրանցումը և HTTP կարգավիճակի մշակումը պրոքսի ձախողման ժամանակ։
Տրանսպորտը կարող է գրանցել ձախողված պրոքսի կապակցում, մինչդեռ հավելվածը նույնպես ստանում և մշակում է ռեակտիվ սխալը։ Միայն գրառումը չի ապացուցում, որ հավելվածի մշակիչը բաց է թողնվել։
Հետևեք սխալի ազդանշանին այն շղթայում, որին իրականում բաժանորդագրվում են։ Միայն Mono կառուցող կոդի շուրջ try/catch-ը այլ շրջանակ է, քան ավելի ուշ ցանցային ձախողման մշակումը։
| Օպերատոր | Ազդեցություն |
|---|---|
| doOnError | Կատարում է կողմնակի ազդեցություն, քանի դեռ սխալը շարունակվում է |
| onErrorMap | Փոխակերպում է սխալը մեկ այլ սխալի |
| onErrorResume | Անցնում է այլընտրանքային հրատարակիչի |
Ընտրեք այն վարքագիծը, որն անհրաժեշտ է հավելվածին։ Չափանիշ գրանցելը չի պահանջում կեղծ հաջող բովանդակություն վերադարձնել։ Այլընտրանքային պատասխանը պետք է լինի հավելվածի դիտավորյալ արդյունք, ոչ թե ձախողված ուղին թաքցնելու միջոց։
Տարբերեք նաև տրանսպորտի բացառությունները ստացված HTTP սխալի կարգավիճակներից։ Պրոքսի կապակցումը կարող է ձախողվել մինչև սովորական նպատակակետային պատասխանի գոյությունը, այնպես որ HTTP կարգավիճակի մշակիչը կարող է ոչինչ չունենալ ստուգելու։ Պահպանեք WebClientRequestException-ի պատճառը ցածր մակարդակի ձախողումը ախտորոշելիս։
Կարգավորեք գրանցումը միայն արդյունքը հասկանալուց հետո։ Ամբողջ տրանսպորտային գրանցիչն անջատելը կարող է հեռացնել ապացույցներ, որոնք անհրաժեշտ են ավելի ուշ ժամկետի, TLS խնդրի կամ նույնականացման ձախողման համար՝ չփոխելով ռեակտիվ խողովակաշարի վարքագիծը։