Ralat proksi dalam Spring WebClient: pengendalian reaktif berbanding pengelogan
Bezakan isyarat ralat reaktif WebClient, pengelogan pengangkutan dan pengendalian status HTTP semasa kegagalan proksi.
Pengangkutan boleh mencatat sambungan proksi yang gagal dalam log sementara aplikasi juga menerima dan mengendalikan ralat reaktif itu. Entri log sahaja tidak membuktikan bahawa pengendali aplikasi telah dilangkau.
Ikut isyarat ralat dalam rantaian yang benar-benar dilanggan. try/catch di sekeliling kod yang hanya membina Mono ialah skop berbeza daripada pengendalian kegagalan rangkaian yang lebih lewat.
| Pengendali | Kesan |
|---|---|
| doOnError | Melakukan kesan sampingan semasa ralat berterusan |
| onErrorMap | Mengubah satu ralat menjadi ralat lain |
| onErrorResume | Bertukar kepada penerbit alternatif |
Pilih tingkah laku yang diperlukan aplikasi. Merekod metrik tidak memerlukan pemulangan kandungan kejayaan palsu. Respons alternatif harus menjadi hasil aplikasi yang disengajakan, bukan cara menyembunyikan laluan yang gagal.
Bezakan juga pengecualian pengangkutan daripada status ralat HTTP yang diterima. Sambungan proksi boleh gagal sebelum respons destinasi biasa wujud, jadi pengendali status HTTP mungkin tiada apa-apa untuk diperiksa. Kekalkan punca WebClientRequestException semasa mendiagnosis kegagalan peringkat bawah.
Laraskan pengelogan hanya selepas memahami hasilnya. Mematikan seluruh pengelog pengangkutan boleh membuang bukti yang diperlukan untuk tamat masa, masalah TLS atau kegagalan pengesahan yang kemudian, tanpa mengubah tingkah laku saluran paip reaktif.