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