Cột kỹ thuật

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.