Chuỗi bài viết này đi sâu vào kiến trúc kỹ thuật đằng sau tính năng quan trọng nhất của các ứng dụng gọi xe: Khả năng thời gian thực (Real-time).
Nhìn chiếc xe chạy mượt mà trên bản đồ có vẻ đơn giản, nhưng đằng sau là một mạng lưới phân tán khổng lồ: từ giao thức truyền tải GPS tối ưu pin, thuật toán chia lưới bản đồ bằng hình lục giác (H3), xương sống Kafka xử lý hàng triệu sự kiện mỗi giây, hệ thống DISCO ghép cuốc xe tối ưu, cho đến RAMEN — mạng lưới đẩy thông báo thời gian thực của Uber.
Toàn bộ nội dung được tổng hợp từ các engineering blog chính thức của Uber, Grab, và Lyft.
Nội dung chuỗi bài
- Tóm tắt — Bức tranh toàn cảnh Hệ thống Gọi xe Real-time
- Phần 1 — Location Ingestion: Thu thập hàng triệu tọa độ GPS mỗi giây
- Phần 2 — Geospatial Indexing: H3, S2 Geometry & Redis GEO
- Phần 3 — Event Streaming: Xương sống Apache Kafka & Flink
- Phần 4 — DISCO & Matching Engine: Thuật toán ghép cuốc xe
- Phần 5 — Surge Pricing: Tính giá động theo cung cầu thời gian thực
- Phần 6 — RAMEN & Giao tiếp Real-time: Đẩy thông báo tức thì tới hàng triệu thiết bị