写点什么

通达快递产品架构设计

用户头像
天天向上
关注
发布于: 2020 年 12 月 27 日

1、设计概要

通达快递系统是一个同城快递业务系统,是公司进军物流快递行业战略的核心系统。

1.1、功能概述

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

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

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

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

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

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

1.2、功能用例图


1.3、非功能约束

预计上线后三个月日单超过 1 万,一年日单超过 50 万。

2、系统部署图与整体设计

2.1、系统部署图

  • 系统采用微服务架构,核心业务模块分为:

用户服务:主要负责用户是注册、登录等功能

支付服务:主要负责用户订单支付、退款等功能

订单服务:主要负责用户下单、抢单、查询订单等功能

快递员服务:快递员注册、登录等功能

派单服务:匹配快递员、推送订单等功能

  • 数据库采用 MySql 主从复制架构模式

  • 派单采用异步消息的架构模式

  • 用户和业务员信息属于热点数据,采用分布式缓存进行存储

2.2、下单抢单场景的时序图



2.3、下单抢单场景的活动图

2.4、订单状态图

2.5、核心算法

  • 抢单算法:初期用户量不大的情况下使用 redis 的 SETNX 锁来实现抢单,如果用户量变大性能存在瓶颈则改用 zookeeper

  • 快递员距离计算:根据用户取件地址的经纬度与所有快递员的经纬度计算距离,少于 5km 的快递员符合条件

用户头像

天天向上

关注

还未添加个人签名 2018.09.20 加入

还未添加个人简介

评论

发布
暂无评论
通达快递产品架构设计