| | |
| | | - Nacos / Sentinel / Seata 等基础组件需先行部署,并在各 boot 应用中配置好连接信息 |
| | | |
| | | --- |
| | | *文档更新时间: 2026-02-06* |
| | | ## 六、存储说明(车辆位置) |
| | | |
| | | - 存储目的与职责分离 |
| | | - Redis:作为“最新位置流”的高速缓存与分发,适合高频写入与低延迟读取,用于轨迹回放与乘客端实时推送。键形如 `vehiclePosition:{VIN}`,使用 GEO 存储坐标。 |
| | | - MongoDB:作为“可检索的状态快照”,结构化保存车辆位置与动态信息(速度、电量、续航、订单等),并基于 `2dsphere` 地理索引支持附近车辆检索、调度筛选与数据分析。集合为 `vehicle_position`。 |
| | | |
| | | - 典型使用场景 |
| | | - 实时推送与展示:优先读取 Redis,支撑毫秒级更新与高并发消费(例如在自动驾驶控制与轨迹回放中)。 |
| | | - 调度与检索:优先查询 MongoDB,通过地理索引进行“附近可用车辆”检索,结合车辆状态进行综合筛选。 |
| | | |
| | | - 相关代码与数据模型 |
| | | - Redis 写入:自动驾驶控制流程会在轨迹回放或实时上报时写入 Redis(如 `OrderMissionController.pushStartDriverLocation` 与 `pushEndDriverLocation`)。 |
| | | - MongoDB 写入:同时更新 `vehicle_position` 文档,包含 `vin`、`point(GeoJSON)`、`speed`、`currentElectricity`、`mileageRange`、`orderId` 等丰富字段,支持后续查询与分析。 |
| | | - VehiclePosition:MongoDB 文档模型,集合 `vehicle_position`,承载车辆位置与动态信息。 |
| | | - LonLatDto:轻量经纬度 DTO,用于接口与服务间坐标传输(地图服务、消息推送等),不参与持久化。 |
| | | |
| | | *该双存储策略在性能与功能上互补:Redis 提供低延时的实时能力,MongoDB 提供可查询与可索引的分析与调度能力。* |
| | | *文档更新时间: 2026-03-02* |