大作业 2
同城快递系统设计
设计概述
功能概述
顾客在用户 APP 下单
下单后推送给附近的快递员
快递员通过管理端 APP 抢单
快递员完成顾客订单的配送
设计概述
非功能概述
系统需要弹性可伸缩。预计 3 个月后日订单超 1 万,1 年后日订单超 50 万。
早期快速迭代,简单部署,非核心直接用第三方服务。预计 2 个月上线。
性能达到互联网要求。查询平均响应时间 <300 ms。
系统部署图
系统上线时预计部署 4 台物理机,4 个子系统,3 台数据库(1 主 1 从),3 台消息队列。
消息推送使用第三方服务。
数据库和消息队列使用相同机器,数据库按服务拆为 4 个库,读写分离(shardingsphere),消息队列使用 RabbitMQ。
微服务框架使用 Dubbo。
系统序列图
下单、支付
快递员位置上报
已支付订单推送到附近快递员 APP
快递员抢单
快递员配送后,更新订单状态
下单抢单活动图
订单位置匹配算法:
通过轮询所有快递员,查找到距离 5km 快递员,发送订单信息
抢单
通过 redis 缓存实现分布式锁
订单状态图
版权声明: 本文为 InfoQ 作者【Yangjing】的原创文章。
原文链接:【http://xie.infoq.cn/article/7e971577974a5a2953dfaa37c】。未经作者许可,禁止转载。
评论