Памылкі проксі Spring WebClient: рэактыўная апрацоўка супраць лагавання
Адрознівайце рэактыўны сігнал памылкі WebClient, лагаванне транспартнага ўзроўню і апрацоўку статусаў HTTP пры збоі проксі.
Транспарт можа запісаць у лог няўдалае праксі-злучэнне, у той час як праграма таксама атрымлівае і апрацоўвае рэактыўную памылку. Адзін запіс у логу не даказвае, што апрацоўшчык праграмы быў прапушчаны.
Сачыце за сігналам памылкі ў ланцугу, які фактычна падпісваецца. try/catch вакол кода, які толькі стварае Mono, — гэта іншая вобласць, чым апрацоўка пазнейшага збою сеткі.
| Аператар | Эфект |
|---|---|
| doOnError | Выконвае пабочны эфект, пакуль памылка працягваецца |
| onErrorMap | Пераўтварае памылку ў іншую памылку |
| onErrorResume | Пераключаецца на альтэрнатыўны выдавец |
Выбірайце паводзіны, якія патрэбны праграме. Запіс метрыкі не патрабуе вяртання фальшывага паспяховага змесціва. Альтэрнатыўны адказ павінен быць свядомым вынікам праграмы, а не спосабам схаваць няўдалы маршрут.
Таксама адрознівайце выключэнні транспарту ад атрыманых статусаў памылкі HTTP. Праксі-злучэнне можа сарвацца раней, чым існуе звычайны адказ прызначэння, таму апрацоўшчыку статусаў HTTP можа не быць чаго правяраць. Захоўвайце прычыну WebClientRequestException пры дыягностыцы ніжэйшага збою.
Карэкціруйце лагаванне толькі пасля разумення выніку. Поўнае адключэнне лагера транспарту можа выдаліць доказы, патрэбныя для пазнейшага тайм-аўту, праблемы TLS або збою аўтэнтыфікацыі, не змяняючы паводзін рэактыўнага канвеера.