1. Architecture
Search Tool
  • Tổng quan Cấu trúc Hệ thống
  • Bussiness | Logic
    • Nghiệp vụ & Luồng Tìm kiếm
  • Project
    • Search API
      • Tổng quan
      • Architecture
        • User Guide
        • Database Schema
        • System Architecture
        • Code Structure
      • Deployment
        • Product
      • API Interface
        • Tài liệu Tham khảo API
        • Go - Auth
          • Đăng nhập
          • Đăng ký (Public)
        • Go - User
          • Danh sách User (Phân trang)
          • Tạo User
          • Lấy tất cả User
          • Profile cá nhân
          • Chi tiết User
          • Cập nhật User
          • Xóa User
          • Đổi mật khẩu
        • Go - System
          • Nhật ký hoạt động (Phân trang)
          • Cập nhật dữ liệu Search
          • Test Webhook receiver
        • Go - Server
          • Danh sách Server (Phân trang)
          • Tạo Server
          • Lấy tất cả Server
          • Chi tiết Server
          • Cập nhật Server
          • Xóa Server
        • Go - Tasks
          • Tạo nhiều task Search
          • Lấy tất cả task Search
          • Reset trạng thái tất cả nhiệm vụ Search
          • Tạo nhiều task Anchor Text
          • Lấy tất cả nhiệm vụ Anchor Text
          • Reset trạng thái tất cả nhiệm vụ Anchor Text
        • Go - Webhook
          • Webhook cập nhật trạng thái (Dùng WEBHOOK_KEY)
          • Lấy Proxy cho Tool
          • Lấy Proxy có thể rotate
          • Cập nhật kết quả Search
          • Kết quả rotate Proxy
          • Cập nhật kết quả Anchor Text
          • Nhận kết quả từ Tool (v2)
        • Bun - Main
          • Thông tin server Bun
          • Health Check
          • Lấy file Log
        • Bun - Task
          • Danh sách Search Tasks
          • Tạo nhiều Search Tasks
          • Xóa tất cả Search Tasks
          • Xóa Search Task
          • Reset trạng thái Search
          • Reset running process
          • Danh sách Anchor Tasks
          • Tạo nhiều Anchor Tasks
          • Xóa tất cả Anchor Tasks
          • Xóa Anchor Task
          • Reset trạng thái Anchor
          • Reset running process
    • Search tool
      • Tổng quan
      • Architecture
        • User Guide
        • Database Schema
        • System Architecture
        • Code Structure
      • Deployment
        • Product
  • Schemas
    • LoginRequest
    • ProxyRequest
    • CreateUserRequest
    • KeywordTaskRequest
    • UpdateUserRequest
    • SearchAutomationRequest
    • ChangePasswordRequest
    • CreateServerRequest
    • AnchorTextTaskRequest
  1. Architecture

System Architecture

KIẾN TRÚC HỆ THỐNG: SEARCH TOOL (SYSTEM ARCHITECTURE)#

Hệ thống được thiết kế theo dạng Worker Node (Nút xử lý), vận hành độc lập nhưng kết nối chặt chẽ với API Server trung tâm thông qua kiến trúc hướng sự kiện (Webhook) và điều phối công việc theo lô (Cronjob).

I. SƠ ĐỒ LUỒNG KIẾN TRÚC (ARCHITECTURE DIAGRAM)#

+------------------------------------------------------------------+
|                  SEARCH TOOL (Bun + ElysiaJS)                    |
|                        Port: 33033                               |
|                                                                  |
|  [ENTRY POINT: src/index.ts]                                     |
|  1. Khởi tạo kết nối MongoDB nội bộ.                             |
|  2. Dọn dẹp thư mục tmp/user-data (Xóa rác Chrome Profile cũ).   |
|  3. Khởi động Máy chủ HTTP.                                      |
|                                                                  |
|  [HTTP ROUTES LAYER]                                             |
|  /api/searches              - Tiếp nhận Task tìm kiếm SEO.       |
|  /api/search-anchor-texts   - Tiếp nhận Task quét Liên kết.      |
|  /api/proxies               - Tiếp nhận Lệnh đảo IP.             |
|                                                                  |
|  [CRON SCHEDULER ENGINE] (Thực thi mỗi giây)                     |
|  - search-cron             : Quét từ khóa.                       |
|  - anchor-text-cron        : Quét liên kết.                      |
|  - proxy-cron              : Thực thi đảo IP.                    |
|  * Cơ chế bảo vệ: Không chạy chéo luồng Webhook.                 |
|                                                                  |
|  [BROWSER MANAGER ENGINE] (Hạt nhân cốt lõi)                     |
|  - Duy trì Chrome Session Pool (Quản lý tiến trình).             |
|  - Giới hạn cứng: BROWSER_LIMIT (Chống sập RAM).                 |
|  - Ứng dụng Puppeteer + Stealth Plugin (Xóa dấu vết).            |
|  - Giả lập con trỏ chuột (Ghost Cursor).                         |
+---+-------------------------------+------------------------------+
    |                               |
    v                               v
+--------+                 +-------------------+
|MongoDB |                 | External Network  |
|(Local) |                 |                   |
|        |                 | - searchapi.io    |
|searches|                 | - Webhook API     |
|proxies |                 | - Chrome Instance |
+--------+                 +-------------------+

II. ĐẶC TẢ LUỒNG HOẠT ĐỘNG CỦA WORKER (WORKFLOW PROCESS)#

1. Luồng Tác vụ Tìm kiếm Từ khóa (Keyword Scraping Lifecycle)#

1.
Tiếp nhận: API Server trung tâm gọi POST /api/searches đẩy một lô Task xuống Tool. Dữ liệu lưu vào MongoDB nội bộ với Status = 0.
2.
Khởi chạy Trình duyệt: Cronjob (chạy mỗi giây) bốc các Task trạng thái PENDING. Nó yêu cầu BrowserManager khởi tạo một phiên làm việc mới (Khởi động nhân Chrome).
3.
Thu thập dữ liệu: Chrome tự động duyệt web vào Google hoặc Cốc Cốc, tiêm mã JavaScript (Inject Script) để trích xuất cấu trúc HTML (Bóc tách Quảng cáo và Kết quả tự nhiên).
4.
Hồi báo (Webhook Dispatch): Sau khi có kết quả, Task chuyển sang Status = 2. Trình lên lịch Webhook sẽ tóm lấy dữ liệu này, đóng gói và gọi POST trả về API Server thông qua biến webhook_url.

2. Luồng Tác vụ Xoay vòng Proxy (Proxy Rotation Lifecycle)#

1.
Task được nạp qua POST /api/proxies.
2.
Cronjob đọc URL xoay vòng (rotate_url) và thực thi yêu cầu HTTP GET.
3.
Lấy lại địa chỉ ip_public mới, lưu dữ liệu, đóng gói báo cáo và gửi về qua Webhook.

III. QUẢN TRỊ TRÌNH DUYỆT (BROWSER MANAGER POOLING)#

Tránh rò rỉ bộ nhớ (Memory Leak): Hệ thống giám sát chặt chẽ biến browserManager.sessionsCount. Mọi tiến trình Chrome treo sẽ bị ép tắt (Force Kill). Thư mục tmp/user-data bị xóa sạch khi ứng dụng khởi động lại để giải phóng ổ cứng.
Đánh lừa Thuật toán (Anti-Bot Evasion): Việc cấu hình thiết bị (Đổi User-Agent, đổi kích thước 1920x1080 cho PC hoặc iPhone 14 cho Mobile) kết hợp Ghost Cursor giúp hành vi của Bot giống hệt người dùng thật.
Ngày cập nhật 2026-03-30 03:17:20
Trước
Database Schema
Tiếp theo
Code Structure
Built with