Chuyển đến nội dung
Tất cả bài viết
Blog & hướng dẫn/Giải pháp Proxy
Giải pháp Proxy

Cách xây dựng Proxy Pool có health check và failover

Thiết kế Proxy Pool an toàn với health check, điểm chất lượng, cooldown, circuit breaker, phân phối tải và failover khi IP mất kết nối.

Cách xây dựng Proxy Pool có health check và failover
NỘI DUNG BÀI VIẾTHướng dẫn chi tiết từ ProxySmart

Cách xây dựng Proxy Pool có health check và failover không chỉ là danh sách IP xoay vòng. Một pool vận hành tốt cần trạng thái từng node, phép đo phù hợp, cơ chế cooldown và quy tắc bảo vệ session khi một Proxy gặp sự cố.

Mục lục

  1. Mô hình dữ liệu của một Proxy
  2. Health check nên đo gì?
  3. Không loại node chỉ vì một lỗi
  4. Chiến lược phân phối tải
  5. Circuit breaker và failover
  6. Bảo vệ session và dữ liệu
  7. Quan sát và vận hành

Mô hình dữ liệu của một Proxy

  • ID nội bộ, host, port và giao thức.
  • Vị trí, ASN và loại IP.
  • Trạng thái active, degraded, cooldown hoặc disabled.
  • Thời gian kiểm tra cuối và lỗi gần nhất.
  • Điểm độ trễ, tỷ lệ thành công và số session đang giữ.

Health check nên đo gì?

Health check cần kiểm tra kết nối TCP, bắt tay Proxy, request tới endpoint do bạn kiểm soát và IP thoát. Không dùng website bên thứ ba làm mục tiêu kiểm tra với tần suất cao.

Theo dõi p50, p95 và tỷ lệ lỗi theo cửa sổ thời gian. Bài giám sát Proxy tự động cung cấp bộ chỉ số nền.

Không loại node chỉ vì một lỗi

Một timeout đơn lẻ có thể đến từ mạng nền hoặc endpoint kiểm tra. Dùng ngưỡng nhiều lần liên tiếp hoặc tỷ lệ lỗi trong cửa sổ. Khi vượt ngưỡng, đưa node vào cooldown thay vì xóa ngay.

Sau cooldown, thử một lượng nhỏ request trước khi phục hồi đầy đủ.

Chiến lược phân phối tải

  • Round robin cho tải đồng đều và node tương đương.
  • Weighted routing dựa trên điểm chất lượng hoặc băng thông.
  • Least connections khi thời gian xử lý khác nhau.
  • Rendezvous hashing để giữ ánh xạ ổn định.
  • Sticky session cho luồng có trạng thái, không xoay giữa chừng.

Circuit breaker và failover

  1. Đóng mạch bình thường khi node khỏe.
  2. Mở mạch khi lỗi vượt ngưỡng để dừng gửi thêm tải.
  3. Chờ cooldown có giới hạn.
  4. Chuyển sang half-open với vài request thử.
  5. Phục hồi hoặc tiếp tục cách ly theo kết quả.

Bảo vệ session và dữ liệu

Failover không an toàn cho mọi request. POST không idempotent có thể đã được xử lý dù client thấy timeout. Không tự động gửi lại nếu thao tác có thể tạo bản ghi trùng. Với phiên đăng nhập, đổi IP có thể yêu cầu xác minh lại.

Phân loại tác vụ idempotent và có trạng thái trước khi bật retry hoặc chuyển node.

Quan sát và vận hành

  • Dashboard số node theo trạng thái.
  • Cảnh báo khi pool khỏe giảm dưới ngưỡng.
  • Log theo ID nội bộ, không ghi mật khẩu.
  • Giới hạn retry toàn cục để tránh bão tải.
  • Quy trình vô hiệu hóa thủ công và thay IP.

Câu hỏi thường gặp

Bao lâu nên health check một lần?

Phụ thuộc SLA và quy mô. Bắt đầu từ chu kỳ vừa phải, thêm jitter và tránh tạo tải lớn lên endpoint.

Round robin có đủ không?

Chỉ khi node tương đương và không có session. Hệ thống thực tế thường cần scoring, cooldown và sticky mapping.

Failover có nên retry mọi request?

Không. Chỉ retry thao tác an toàn, idempotent và trong ngân sách thử lại.

Kết luận

Proxy Pool cần health check, trạng thái, cooldown, scoring và circuit breaker. Failover phải hiểu session và tính idempotent để không biến một lỗi mạng thành dữ liệu trùng hoặc bão retry.

Bạn cần cấu hình Proxy phù hợp? Hãy xem các gói tại ProxySmart hoặc liên hệ hỗ trợ để được tư vấn theo vị trí IP, giao thức, băng thông và số phiên đồng thời. Chỉ sử dụng proxy cho mục đích hợp pháp, trên hệ thống bạn sở hữu hoặc được phép kiểm thử, đồng thời tuân thủ điều khoản của dịch vụ đích.