Kesalahan proxy di Spring WebClient: penanganan reaktif versus pencatatan log
Bedakan sinyal kesalahan reaktif WebClient, pencatatan log transport, dan penanganan status HTTP saat proxy gagal.
Transport dapat mencatat koneksi proxy yang gagal sementara aplikasi juga menerima dan menangani kesalahan reaktif tersebut. Entri log saja tidak membuktikan bahwa penangan aplikasi dilewati.
Ikuti sinyal kesalahan pada rantai yang benar-benar dilanggan. try/catch di sekitar kode yang hanya membangun Mono adalah cakupan berbeda dari penanganan kegagalan jaringan yang muncul kemudian.
| Operator | Efek |
|---|---|
| doOnError | Menjalankan efek samping selama kesalahan berlanjut |
| onErrorMap | Mengubah satu kesalahan menjadi kesalahan lain |
| onErrorResume | Beralih ke penerbit alternatif |
Pilih perilaku yang dibutuhkan aplikasi. Mencatat metrik tidak mengharuskan mengembalikan konten sukses palsu. Respons alternatif harus merupakan hasil aplikasi yang disengaja, bukan cara menyembunyikan rute yang gagal.
Bedakan juga pengecualian transport dari status kesalahan HTTP yang diterima. Koneksi proxy dapat gagal sebelum respons tujuan biasa ada, sehingga penangan status HTTP mungkin tidak punya apa pun untuk diperiksa. Pertahankan penyebab WebClientRequestException saat mendiagnosis kegagalan tingkat bawah.
Sesuaikan pencatatan log hanya setelah memahami hasilnya. Mematikan seluruh logger transport dapat menghapus bukti yang dibutuhkan untuk timeout, masalah TLS, atau kegagalan autentikasi berikutnya, tanpa mengubah perilaku alur reaktif.