写点什么

同城快递架构设计

用户头像
Mars
关注
发布于: 2021 年 01 月 31 日

背景

某上市公司全资投资成立的一家物流快递公司,主要进行同城快递业务,公司刚刚成立,组建 20 人技术部门,准备两个月后系统开发完成上线。

产品需求

l  用户通过 app 发起快递下单请求并支付

l  快递员通过自己的 App 上报自己的地理位置,每 30 秒上报一次

l  系统收到快递请求后,向距离用户直线距离 5km 内的所有快递员发送通知

l  快递员需要进行抢单,第一个抢单的快递员得到配单,系统向其发送用户详细地址

l  快递员到用户处收取快递,并记录到系统中:已收件

l  快递员将快递送到目的地,并记录到系统中:已送达

l  说明:预计上线后三个月日单超过 1 万,一年日单超过 50 万

 

系统用例图

通过系统用例图,可以看到系统用户分别是:寄件人、快递员。

寄件人功能包括:下单、支付。

快递员功能包括:抢单、取件、送达、位置上报。



下单、抢单业务活动图



下单、抢单时序图



系统部署图

部署说明

CDN 加速静态资源文件访问。

采用 NGINX 作负载均衡。

寄件人微服务和快递员服务分开,保证功能互不影响,用户端流量激增时可以快速扩容。

订单服务和抢/配单服务独立部署,系统间采用 RPC 方式通讯。

消息队列采用 RocketMQ。

数据库采用 MySQL,主从架构,支持读写分离。

缓存服务采用 Redis,主从+哨兵模式。



订单状态图



发布于: 2021 年 01 月 31 日阅读数: 18
用户头像

Mars

关注

还未添加个人签名 2018.06.12 加入

还未添加个人简介

评论

发布
暂无评论
同城快递架构设计