技术架构概述
- 后端采用 Spring Boot 框架,提供 RESTful API 接口,处理业务逻辑和数据持久化。
- 前端使用 Vue.js 框架,构建响应式用户界面,实现司机与乘客的交互功能。
- 数据库选用 MySQL 或 PostgreSQL,存储用户信息、订单数据及地理位置信息。
- 实时通信通过 WebSocket 或第三方服务(如 Socket.io)实现司机与乘客的即时消息推送。
核心功能模块设计
后端(Spring Boot)
- 司机管理模块:注册、登录、资质审核、状态管理(在线/离线)。
- 订单处理模块:预约订单创建、接单逻辑、订单状态流转(待接单/进行中/已完成)。
- 地理位置服务:集成高德或百度地图 API,实现司机位置更新、路径规划及 ETA 计算。
- 支付集成:对接支付宝或微信支付 API,处理订单费用结算。
前端(Vue.js)
- 司机端功能:
- 实时位置上报:通过浏览器 Geolocation API 或原生 SDK 获取司机位置。
- 订单通知:WebSocket 监听新订单,展示订单详情及乘客信息。
- 行程管理:查看当前行程路线、费用明细及导航支持。
- 乘客端功能(可选扩展):
- 预约下单:选择出发地/目的地,提交预约请求。
- 订单跟踪:地图显示司机位置及预计到达时间。
关键技术实现细节
Spring Boot 后端
- 使用 Spring Security + JWT 实现身份认证与权限控制。
- 订单状态机设计:通过状态模式(如 Enum 或状态表)管理订单生命周期。
- 分布式锁:Redisson 或数据库乐观锁解决并发接单冲突问题。
- 定时任务:Spring Scheduler 检查超时未接单的预约订单。
Vue.js 前端
- 状态管理:Vuex 集中管理司机在线状态、订单数据及地理位置。
- 地图集成:Vue2-AMap 或 Leaflet 组件渲染地图及标记司机/乘客位置。
- 响应式设计:Flex 布局 + Vant UI 组件库适配移动端操作。
- 实时通信:Socket.io-client 监听后端推送的订单消息。
性能优化与安全
- 后端缓存:Redis 缓存高频访问数据(如司机列表、热门区域订单)。
- 数据库索引:为地理位置字段(经纬度)建立空间索引(R-tree)。
- 防刷单策略:限流(如 Guava RateLimiter)防止恶意频繁接单。
- 数据加密:敏感信息(如手机号)通过 AES 或 SM4 加密存储。
测试与部署
- 接口测试:Postman 或 Swagger 自动化测试 API 逻辑。
- 压力测试:JMeter 模拟高并发订单请求,优化线程池配置。
- 容器化部署:Docker + Kubernetes 编排后端微服务与前端静态资源。
- 监控:Prometheus + Grafana 监控系统性能指标(如 API 响应时间、在线司机数)。
扩展方向
- 大数据分析:Flink 实时计算司机接单率、区域热力图,辅助调度决策。
- 机器学习:基于历史订单预测高峰时段,动态调整司机奖励策略。
- 多平台适配:通过 Uniapp 或 Capacitor 打包为 Android/iOS 原生应用。


