Грешке проксија у Spring WebClient-у: реактивно руковање наспрам логовања
Разликујте реактивни сигнал грешке WebClient-а, логовање транспорта и руковање HTTP статусом током квара проксија.
Транспорт може забележити неуспешну прокси везу док апликација такође прима и обрађује реактивну грешку. Сам запис у логу не доказује да је руковалац апликације прескочен.
Пратите сигнал грешке у ланцу који се заиста претплаћује. try/catch око кода који само гради Mono је други обим од обраде каснијег мрежног квара.
| Оператор | Ефекат |
|---|---|
| doOnError | Извршава нуспојаву док грешка траје |
| onErrorMap | Претвара грешку у другу грешку |
| onErrorResume | Пребацује на алтернативног издавача |
Изаберите понашање које апликацији треба. Бележење метрике не захтева враћање лажно успешног садржаја. Алтернативни одговор треба да буде намеран резултат апликације, а не начин да се сакрије неуспешна рута.
Такође разликујте транспортне изузетке од примљених HTTP статуса грешке. Прокси веза може пасти пре него што постоји уобичајен одговор одредишта, па руковалац HTTP статуса можда нема шта да прегледа. Сачувајте узрок WebClientRequestException при дијагностици нижег квара.
Прилагодите логовање тек након што разумете исход. Искључивање целог транспортног логера може уклонити доказе потребне за каснији тајмаут, TLS проблем или неуспех аутентификације, а да притом не промени понашање реактивног цевовода.