上篇刷完算法高频题,这篇进入外卖系统专项。美团外卖是美团核心业务,架构师面试经常围绕外卖场景展开——不是考你写代码,而是考你对复杂业务系统的理解深度和架构设计能力。
这篇8道题覆盖美团外卖架构师面试核心考点,每道题都有追问环节。
Q1:美团外卖的实时定位系统怎么做的?
场景:用户下单后需要看到骑手位置,骑手端持续上报GPS坐标,用户端实时展示骑手移动轨迹。
技术方案:
- 定位采集:骑手端每3-5秒上报一次GPS坐标(经纬度+时间戳+方向+速度)。弱网环境本地缓存批量上报。
- 数据传输:长连接通道(WebSocket或自定义TCP协议)。服务端维护骑手位置的最新状态。
- 位置推算:两次上报之间用插值算法(线性插值或贝塞尔曲线)平滑轨迹。避免骑手在地图上"跳"。
- 地图展示:用户端收到位置更新后,用Marker动画平滑移动。道路吸附算法让Marker沿道路移动而非直线。
追问:GPS漂移怎么处理?过滤异常点(速度超过合理值、位置跳变超过阈值)。用卡尔曼滤波平滑轨迹。室内定位用WiFi/基站辅助。
Q2:订单状态机怎么设计?
外卖订单状态流转:
已下单 → 商家接单 → 商家备餐中 → 骑手接单 → 骑手到店 → 骑手取餐 → 配送中 → 已送达