Spring WebClient'ta proxy hataları: reaktif işleme karşı günlükleme
Proxy arızası sırasında WebClient'ın reaktif hata sinyalini, taşıma katmanı günlüklemesini ve HTTP durum işlemesini birbirinden ayırın.
Taşıma katmanı başarısız bir proxy bağlantısını günlüğe yazarken uygulama da reaktif hatayı alıp işleyebilir. Tek başına günlük kaydı, uygulamanın işleyicisinin atlandığını kanıtlamaz.
Hata sinyalini gerçekten abone olunan zincirde izleyin. Yalnızca Mono oluşturan kodun etrafındaki try/catch, daha sonraki bir ağ arızasını işlemekten farklı bir kapsamdır.
| Operatör | Etki |
|---|---|
| doOnError | Hata devam ederken yan etki gerçekleştirir |
| onErrorMap | Bir hatayı başka bir hataya dönüştürür |
| onErrorResume | Alternatif bir yayıncıya geçer |
Uygulamanın ihtiyaç duyduğu davranışı seçin. Bir metrik kaydetmek sahte başarılı içerik döndürmeyi gerektirmez. Alternatif yanıt, başarısız bir rotayı gizlemenin yolu değil, uygulamanın bilinçli bir sonucu olmalıdır.
Taşıma istisnalarını alınan HTTP hata durumlarından da ayırın. Bir proxy bağlantısı, hedefin olağan yanıtı var olmadan önce başarısız olabilir, bu nedenle bir HTTP durum işleyicisinin inceleyecek bir şeyi olmayabilir. Daha alt düzeydeki arızayı teşhis ederken WebClientRequestException nedenini koruyun.
Günlüklemeyi ancak sonucu anladıktan sonra ayarlayın. Taşıma günlükleyicisinin tamamen kapatılması, sonraki bir zaman aşımı, TLS sorunu veya kimlik doğrulama arızası için gereken kanıtları ortadan kaldırabilir; reaktif boru hattının davranışı değişmez.