Tổng Quan Vận Hành — API Trung Tâm (Go)#
Tài liệu này mô tả sơ đồ vận hành của Thành phần API (Backend) trong hệ thống Search Tool.
1. Vai trò của API#
Trong kiến trúc hệ thống, API đóng vai trò là "Hệ thống điều phối trung tâm" (Central Controller). API không trực tiếp mở trình duyệt để tìm kiếm dữ liệu, mà đảm nhận các nhiệm vụ quản lý cốt lõi:1.
Tiếp nhận Request: Nhận và xác thực các yêu cầu tìm kiếm từ hệ thống ngoài gửi đến.
2.
Quản lý Hàng đợi (Queue): Lưu trữ các yêu cầu vào database (MongoDB) để xử lý dần, tránh quá tải.
3.
Bộ nhớ đệm (Cache): Sử dụng Redis để lưu lại kết quả của các từ khóa vừa được tìm kiếm gần đây. Nếu có yêu cầu trùng lặp, API sẽ trả luôn kết quả từ Cache mà không cần xử lý lại.
4.
Cân bằng tải & Phân phối (Load Balancing/Dispatching): Phân chia các Task (nhiệm vụ) cho các cụm máy chủ Tool (Worker) thực thi dựa trên trọng số ưu tiên.
2. Quá trình tiếp nhận và phân phối Task#
Flow xử lý một yêu cầu diễn ra theo sơ đồ sau:[Hệ thống ngoài]
│
(Request)
▼
[API Trung Tâm]
│
(Lưu Task)
▼
[Queue]
│
(Lấy Task)
▼
[Kiểm tra Cache]
│ │
(Có) (Không)
│ │
▼ ▼
[Webhook] [Điều phối]
│
┌──────┴──────┐
▼ ▼
[Server VIP] [Server Thường]
(Trọng số 5) (Trọng số 2)
Bước 1: [Hệ thống ngoài] gửi Request tìm kiếm đến API.Bước 2: API lưu yêu cầu vào [Database Queue] (Hàng đợi) để tránh tắc nghẽn.Bước 3: API rút Task từ Hàng đợi lên và kiểm tra xem có [Cache Redis] không:Trường hợp A (Có Cache): Lấy kết quả cũ trả ngay về [Webhook] của khách hàng. Không cần tải Tool.
Trường hợp B (Chưa có Cache): Chuyển Task sang hệ thống Phân công (Dispatch).
Bước 4: Phân bổ Task xuống Tool thông qua Cân bằng tải:[Cụm Server VIP (Priority)]: Máy rảnh/cấu hình cao, được gán hệ số 5. Gánh phần lớn số Task.
[Cụm Server Thường (Normal)]: Không đánh dấu Priority, được gán h ệ số 2. Gánh lượng nhỏ Task còn lại.
Cơ chế phân phối theo Trọng số (Weight-based Routing):Khi hệ thống có nhiều máy chủ Tool chạy song song, API sẽ chia việc dựa theo độ mạnh/yếu của từng máy.
Ví dụ: Có 70 Task cần xử lý. Máy A cấu hình mạnh được đánh dấu Priority (Trọng số 5), Máy B cấu hình thường (Trọng số 2). API sẽ chia ~50 Task cho Máy A và ~20 Task cho Máy B để tối ưu hóa thời gian chạy toàn hệ thống.3. Các loại Task#
API quản lý độc lập 2 loại nghiệp vụ riêng biệt:Keyword Search (Tìm kiếm hạng từ khóa): Dùng để phân tích SEO. Hệ thống sẽ đem từ khóa lên Google tra cứu, lấy về danh sách cấu trúc (Top các tên miền, URL, tiêu đề, đoạn mô tả).
Anchor Text Search (Dò quét backlink): Dùng để kiểm toán bài PR / Backlink. Hệ thống sẽ truy cập trực tiếp vào một URL cụ thể, quét toàn bộ mã nguồn để tìm xem có đường link nào đang trỏ về domain mục tiêu hay không.
4. Quản lý trạng thái Task (Status Lifecycle)#
Mỗi Task khi sinh ra sẽ đi qua các vòng đời trạng thái:[NEW / PENDING]: Task mới được tạo, đang nằm trong hàng đợi chờ Tool nhận việc.
[PROCESSING]: Task đã được giao cho một Tool Server, quy trình giả lập trình duyệt đang diễn ra.
[COMPLETED]: Task đã kết thúc (có thể thành công trả v ề dữ liệu, hoặc thất bại do lỗi không thể khắc phục). Tới bước này, API sẽ gọi Webhook trả data về cho bên gửi yêu cầu.
Theo dõi và Khắc phục sự cố:Nếu có các sự cố mạng hoặc Tool bị crash ngầm, một số Task có thể bị kẹt ở trạng thái [PROCESSING]. Hệ thống cung cấp cơ chế (hoặc API Endpoint: /reset-all-status) để đội vận hành có thể chủ động chuyển các Task đang treo này về lại [PENDING] để chạy lại từ đầu.Ngày cập nhật 2026-03-31 07:46:42