架构大作业 -- 物流系统
1,设计概述
通达物流系统是一个同城快递业务物流系统,是公司发展同城物流战略的系统,承担着公司快速占领同城物流市场的目标。
1.1,功能描述
下单:用户通过App发起快递下单请求并支付;
位置上报:快递员通过自己的App上报自己的地理位置,每30秒上报一次;
抢单通知:系统收到快递请求后,向距离用户直线距离5km内所有快递员发送通知;
抢单:快递员需要进行抢单,第一个抢单的快递员得到配单,系统向其发送用户详细地址;
取件:快递员到用户处收取快递,并记录到系统中:已收件;
派件:快递员将快递送到目的地,并记录到系统中:已送达。
信息:用户、快递员注册、登录维护收件人和发件人地址信息。
系统使用者包括:用户、快递员、管理员
1.2,非功能约束
上线后三个月日订单超1w,一年日订单超50w
下单性能目标 平均响应时间<800ms, 95%响应时间<1200ms
抢单性能目标 平均响应时间<800ms,95%响应时间<1200ms
信息查询目标 平均响应时间<500ms, 95%响应时间<800ms
高可用 核心业务系统99.95%可用性
安全 可防攻击,数据加密
1.3,系统关键用例图

2,系统部署图与整体设计
系统上线时预计部署 11台物理机(1台负载均衡,4台应用服务器,3台分布式缓存服务器,2台MySQL 主从服务器,1台消息队列服务器)
2.1 系统部署图

注册登录子系统:提供用户和快递员注册登录服务,部署一台服务器;
物流子系统:提供取件,派件登记服务;
推送子系统:通知快递员抢单,通知用户订单相关信息,和第三方推送服务对接;
订单子系统:用户下单和快递员抢单服务,核心业务,和位置子系统,财务子系统,推送子系统交互;
财务子系统:处理支付相关服务;
2.2,下单场景
用户在app填写订单信息,提交给服务器;
服务器创建订单,并请求财务子系统生成支付信息;
用户支付订单。
2.2.1 活动图

2.2.2 时序图

2.3,抢单场景
订单子系统从消息队列取出新订单处理
订单子系统从位置子系统查询到附近5km的快递员名单发送消息给快递员抢单;
快递员抢单;
订单子系统处理抢单。
2.3.1 活动图

2.3.2 时序图

评论