项目概述
Motorush 是一款类似 Uber 的网约车与调度应用程序,需要精确匹配乘客与附近的司机。该系统依赖于实时位置流传输、空间索引(以快速计算司机搜索半径)以及订单流程的事务一致性。
技术成果
1. 使用 Uber H3 网格进行空间索引
在数千名活跃司机中计算原始经纬度距离指标在计算上是非常昂贵的。
- 实现了 Uber H3 空间网格索引,将地理区域划分为六边形网格单元。
- 将司机位置坐标存储在映射到活跃 H3 单元的 Redis 地理空间索引 中。
- 将附近司机查询延迟降低了 85%,确保在高并发调度请求期间,查询时间低于 15ms。

2. 高可用调度控制器
- 在 Node.js 中构建了实时状态引擎,以管理行程状态流转(如:匹配中、已接单、行程中、已完成)。
- 利用 Redis 事务管道 来处理并发行程请求,并防止向同一位司机重复派单。
- 将支付处理和发票记录委托给后台 Laravel 队列,从而保护核心交易响应速度。