Quay lại danh sách case study
Tối ưu hóa hiệu năng API Gateway bằng cụm Cluster Node.js
Nâng cấp kiến trúc API Gateway bằng Node.js để xử lý gấp 5 lần thông lượng mà không cần tăng gấp đôi hạ tầng phần cứng.
Bối cảnh
API Gateway hiện tại được viết bằng Express.js chạy trên một tiến trình đơn (single process), dẫn đến việc chỉ tận dụng được 1 nhân CPU trên các máy chủ cloud có 8 nhân.
Vấn đề cần xử lý
Nút thắt cổ chai về CPU khiến thời gian phản hồi API tăng cao khi lưu lượng truy cập đồng thời vượt ngưỡng 10.000 RPS.
Hướng xử lý đề xuất
Ứng dụng Cluster Module kết hợp với cân bằng tải nội bộ, tối ưu hóa các middleware không cần thiết, và chuyển đổi các tác vụ mã hóa token nặng sang worker threads.
Câu trả lời mẫu khi phỏng vấn
Để giải quyết bài toán hiệu năng cho API Gateway, tôi đã thiết kế lại kiến trúc khởi chạy ứng dụng sử dụng Cluster module để tận dụng toàn bộ 8 nhân CPU của máy chủ. Chúng tôi cũng cấu hình lại kết nối HTTP keep-alive và loại bỏ các thư viện trung gian cồng kềnh, chuyển sang sử dụng Fastify cho các tuyến đường định tuyến cốt lõi. Nhờ đó, thông lượng hệ thống tăng từ 10.000 lên hơn 50.000 RPS mà không tốn thêm chi phí hạ tầng.
Trade-off
Việc sử dụng mô hình đa tiến trình làm phức tạp thêm việc quản lý trạng thái phiên làm việc (session state) cục bộ, đòi hỏi phải đồng bộ qua Redis.
Kết quả kỳ vọng
Đạt thông lượng mong muốn, giảm chi phí vận hành máy chủ cloud xuống 40% và duy trì độ ổn định cao trong các đợt cao điểm.
Bài học khi trả lời phỏng vấn
Tận dụng đúng mức độ phần cứng vật lý (multi-core) là chìa khóa sống còn khi scale các ứng dụng I/O bound như Node.js.