1. Bussiness | Logic
Proxy Tool
  • Tổng quan cấu trúc hệ thống
  • Bussiness | Logic
    • Logic nghiệp vụ
  • Project
    • Tool
      • Tổng quan
      • Tài liệu API
      • Architecture
        • User Guide
        • Database Schema
        • System Architecture
        • Code Structure
      • Public API
        • Auth
          • Đăng nhập
          • Đăng ký người dùng
          • Lấy thông tin cá nhân hiện tại
        • Users
          • Danh sách người dùng
          • Tạo người dùng mới (Admin)
        • Proxies
          • Danh sách tất cả Proxy
          • Thêm Proxy hàng loạt
          • Nhập proxy từ file Excel/CSV
        • Get proxy
          • Lấy một Proxy trống (Client Tool)
        • Webhooks
          • Trả lại Proxy sau khi dùng
        • Info
          • Thông tin hệ thống (Root)
          • Kiểm tra tình trạng hệ thống
          • Xem tệp nhật ký (Logs)
      • Deployment
        • Local
        • Staging
        • Product
  • Schemas
    • CreateUser
    • Proxy
  1. Bussiness | Logic

Logic nghiệp vụ

Quy trình cốt lõi: Lấy Proxy#

Mục đích chính của ProxyTool là quản lý và phân phối proxy cho các client thông qua API REST tiêu chuẩn.
1.
Yêu cầu: Client gửi yêu cầu lấy proxy qua phương thức GET đến /api/get-proxy.
2.
Lọc dữ liệu: Hệ thống xác định các proxy ứng viên dựa trên:
is_active: Chỉ những proxy được quản trị viên bật.
is_rotating: Loại trừ các proxy đang trong quá trình thay đổi IP.
area: Khu vực địa lý ưu tiên (ví dụ: "global" hoặc "vn").
3.
Kiểm soát đồng thời: Hệ thống kiểm tra in_use và used_count so với ngưỡng PROXY_USE_MAX trong .env để tránh làm quá tải một địa chỉ IP duy nhất.
4.
Chỉ định: Sau khi được chọn, các bộ đếm sử dụng của proxy sẽ được tăng lên và một mã session duy nhất sẽ được tạo ra.
5.
Phản hồi: Client nhận được thông tin đăng nhập proxy và một đường dẫn webhook_url duy nhất.

Vòng đời của một phiên sử dụng Proxy#

Bắt đầu: Được kích hoạt bởi yêu cầu lấy proxy.
Sử dụng: Client sử dụng proxy cho các tác vụ tự động hóa của họ.
Hoàn thành: Client được yêu cầu gọi đến webhook_url được cung cấp khi kết thúc công việc. Hành động này sẽ giảm bộ đếm in_use, giúp proxy sẵn sàng cho các client khác.

Xoay vòng Proxy tự động (Automatic Proxy Rotation)#

ProxyTool đảm bảo tính tin cậy cao bằng cách tự động quản lý việc xoay vòng IP.

Các điểm kích hoạt (Trigger Points)#

Một proxy được đánh dấu để xoay vòng nếu:
Thời điểm next_rotate đã đến.
Proxy bị gắn cờ is_error (kiểm tra kết nối thất bại).
Đã đạt đến giới hạn sử dụng, cần thiết phải có một IP mới.

Quy trình#

1.
Thay đổi trạng thái: Trạng thái của proxy được đặt thành is_rotating: true.
2.
Gọi nhà cung cấp: Hệ thống gọi đến endpoint xoay vòng của nhà cung cấp bên ngoài (ví dụ: KiotProxy API).
3.
Xác minh: Sau khoảng thời gian chờ do nhà cung cấp quy định, hệ thống thực hiện kiểm tra sức khỏe để xác minh IP và vị trí mới.
4.
Trạng thái sẵn sàng: Các bộ đếm sử dụng được thiết lập lại và proxy được đưa trở lại nhóm hoạt động (is_rotating: false).

Tích hợp nhà cung cấp#

Hệ thống bao gồm logic tích hợp sẵn để đồng bộ hóa với các nhà cung cấp như KiotProxy (Hiện tại không còn sử dụng KiotProxy nữa):
Đồng bộ gói cước: Tự động lấy các gói proxy có sẵn và các mức giá.
Quản lý khóa (Key): Nhập các khóa proxy và ánh xạ chúng vào các model nội bộ.
Mở rộng tự động: Hỗ trợ nhập và quản lý số lượng lớn proxy thông qua các công cụ nhập hàng loạt.

An toàn & Bảo trì#

Bảo vệ Mutex: Các hoạt động quan trọng (như lựa chọn proxy) sử dụng khóa mutex để ngăn chặn tình trạng tranh chấp dữ liệu (race conditions) khi có nhiều yêu cầu đồng thời.
Khôi phục trạng thái: Khi khởi động ứng dụng, hệ thống sẽ thiết lập lại bất kỳ trạng thái "đang xử lý" nào bị kẹt để đảm bảo không có proxy nào bị rơi vào tình trạng bế tắc.
Vệ sinh dữ liệu: Các dữ liệu session tạm thời và các tệp nhật ký được quản lý và xóa định kỳ.
Ngày cập nhật 2026-03-26 03:09:22
Trước
Tổng quan cấu trúc hệ thống
Tiếp theo
Tổng quan
Built with