Lỗi proxy trong Spring WebClient: xử lý phản ứng so với ghi nhật ký
Phân biệt tín hiệu lỗi phản ứng của WebClient, ghi nhật ký tầng vận chuyển và xử lý trạng thái HTTP khi proxy gặp sự cố.
Tầng vận chuyển có thể ghi nhật ký một kết nối proxy thất bại trong khi ứng dụng cũng nhận và xử lý lỗi phản ứng đó. Chỉ riêng mục nhật ký không chứng minh rằng trình xử lý của ứng dụng đã bị bỏ qua.
Theo dõi tín hiệu lỗi trong chuỗi thực sự được đăng ký. try/catch quanh mã chỉ tạo một Mono là phạm vi khác với việc xử lý một lỗi mạng về sau.
| Toán tử | Tác động |
|---|---|
| doOnError | Thực hiện tác dụng phụ trong khi lỗi tiếp diễn |
| onErrorMap | Biến đổi một lỗi thành lỗi khác |
| onErrorResume | Chuyển sang nhà phát hành thay thế |
Chọn hành vi mà ứng dụng cần. Việc ghi một chỉ số không đòi hỏi phải trả về nội dung thành công giả. Phản hồi thay thế nên là kết quả có chủ đích của ứng dụng, không phải cách che giấu một tuyến đường thất bại.
Cũng phân biệt ngoại lệ tầng vận chuyển với các trạng thái lỗi HTTP nhận được. Kết nối proxy có thể thất bại trước khi tồn tại phản hồi thông thường từ đích, nên trình xử lý trạng thái HTTP có thể không có gì để kiểm tra. Giữ nguyên nguyên nhân của WebClientRequestException khi chẩn đoán lỗi ở tầng thấp hơn.
Chỉ điều chỉnh ghi nhật ký sau khi hiểu kết quả. Tắt toàn bộ trình ghi nhật ký tầng vận chuyển có thể xóa bằng chứng cần cho thời gian chờ, sự cố TLS hoặc lỗi xác thực về sau, mà không thay đổi hành vi của đường ống phản ứng.