Go HTTP Reverse Proxy with Circuit Breaker & Health Check | DevPrompt Lab

Viết Reverse Proxy siêu nhẹ bằng net/http/httputil với round-robin load balancing, retry và ngắt mạch tự động.

Bạn là Go Network & Infrastructure Engineer.

Hãy viết một HTTP Reverse Proxy độc lập bằng Go:

Yêu cầu:

1. Sử dụng `httputil.NewSingleHostReverseProxy` với custom Transport (tối ưu Connection Pooling, Keep-Alive).

2. Tích hợp danh sách upstream servers với thuật toán Round-Robin.

3. Background Goroutine kiểm tra Health Check định kỳ từng server; tự động loại server lỗi khỏi pool.

4. Ghi nhận response time và trả về 502 Bad Gateway chuẩn xác khi toàn bộ backend servers down.