Tối ưu WebSocket: từ 46 giây đến khởi động tức thì
Tháng 12/2025
Phát hiện vấn đề
Thiết kế ban đầu đăng ký WebSocket cho mọi coin khi chọn coin, khiến hệ thống mất khoảng 46 giây để khởi động.
Nguyên nhân chính:
- Đăng ký thừa: cả coin không giao dịch
- Lãng phí tài nguyên: kết nối và bộ nhớ tăng
- Trễ khởi động: chờ hoàn tất mọi đăng ký
- Trải nghiệm kém: chờ lâu
Hướng giải quyết
1. Chuyển sang phân tích qua API
Chọn coin dùng phân tích qua API, không dùng WebSocket cho bước đó.
- Khởi động ngay: API xử lý bất đồng bộ, không chặn khởi động
- Chỉ dữ liệu cần: truy vấn tối thiểu cho bước chọn
- Cache: tái sử dụng kết quả
2. WebSocket chỉ cho giám sát vị thế
WebSocket chỉ dùng cho vị thế đang giao dịch thực tế.
- Chỉ symbol cần: chỉ đăng ký khi có vị thế mở
- Đăng ký động: mở vị thế thì đăng ký, đóng thì hủy
- Tiết kiệm: bỏ đăng ký không cần
3. Chính sách giữ đăng ký (Retention)
Phân biệt rõ symbol giữ và symbol hủy.
- Mặc định: BTCUSDT, ETHUSDT luôn giữ
- Điều kiện giữ: có vị thế mở hoặc tín hiệu giao dịch gần đây
- Dọn: symbol không thỏa điều kiện — gỡ theo lô
- Dọn định kỳ: gỡ đăng ký thừa theo batch
Triển khai
Hệ thống quản lý đăng ký
Quản lý tập trung để vận hành hiệu quả.
- Theo dõi trạng thái đăng ký
- Ưu tiên symbol quan trọng
- Tự động gỡ đăng ký thừa
- Tự kết nối lại và khôi phục đăng ký khi đứt
Giám sát hiệu năng
Theo dõi liên tục hiệu năng WebSocket để tối ưu.
- Số lượng đăng ký
- Bộ nhớ liên quan
- Độ trễ nhận dữ liệu
- Tần suất và nguyên nhân lỗi
Kết quả
Chỉ số chính
- Thời gian khởi động: 46 giây → tức thì (cải thiện ~99%)
- Số đăng ký WebSocket: giảm ~70%
- Bộ nhớ: giảm nhờ bỏ kết nối thừa
- UX: khởi động ngay
Hiệu ứng chi phí
- Giảm chi mạng nhờ bớt kết nối thừa
- Giảm CPU/bộ nhớ máy chủ
- Giảm công vận hành nhờ tự động hóa quản lý đăng ký
Bài học
1. Thiết kế ban đầu
Cần cân nhắc hiệu năng và khả năng mở rộng sớm.
2. Tối ưu tài nguyên
Thiết kế chỉ dùng phần cần là hiệu quả.
3. Giám sát liên tục
Theo dõi hiệu năng để tìm cơ hội cải thiện.
Góc nhìn R&D và nhà đầu tư
Ưu thế kỹ thuật
Tối ưu WebSocket thể hiện năng lực cải thiện hiệu năng hệ thống.
- Cải thiện ~99% là bằng chứng thực tế
- Khả năng phát hiện và xử lý nút thắt
- Cải tiến liên tục qua giám sát
Hiệu quả vận hành
Cải thiện hiệu năng nâng hiệu quả vận hành.
- Giảm chi phí tài nguyên
- UX tốt hơn nhờ khởi động ngay
- Dễ giữ hiệu năng khi thêm sàn
Kết luận
Nhờ tối ưu WebSocket, thời gian khởi động từ 46 giây xuống tức thì.
Đạt được nhờ chuyển phân tích chọn coin sang API, WebSocket chỉ cho giám sát vị thế, và chính sách giữ đăng ký.
Đây là case quan trọng cho R&D công và nhà đầu tư: năng lực kỹ thuật, hiệu quả vận hành, khả năng cải tiến liên tục.