架构师训练营 -week14- 大作业 1

用户头像
晓-Michelle
关注
发布于: 2020 年 09 月 17 日

设计概述

本系统是为C2C快递提供支持的系统,是公司同城快递业务的核心系统。

功能概述

系统主要功能包括注册、下单、抢单,使用者包括用户与快递员。

用例图

用户端提供用户注册、下单以及查看订单进度等功能。

快递员端提供快递员注册认证、抢单以及同步位置等功能。

非功能约束

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

  1. 查询性能目标:平均响应时间<300ms,95%响应时间<500ms,单机TPS>100;

  2. 下单性能目标:平均响应时间<800ms,95%响应时间<1000ms,单机TPS>30;

  3. 抢单性能目标:平均响应时间<40s,95%响应时间<60s;

  4. 系统核心功能可用性目标:>99.97%

  5. 系统安全性目标:系统可拦截CSQR、DDOS攻击,密码数据散列加密,客户端数据HTTPS加密,外部系统间通信对称加密;

  6. 数据持久化目标:>99.999%;

系统部署图与整体设计

系统上线时,预计部署8台物理机,4个子系统,和多个外部第三方支付系统交互。

系统部署图

网关服务器负责负载均衡,部署2台服务器。

应用服务器负责核心业务,运行主系统、抢单系统、数据中心与财务系统,部署3台服务器。

Redis服务器与消息队列服务器合并部署1台服务器。

数据库采用主从复制,主数据库与从数据库分别部署,共需2台服务器。

系统组件图

主系统的功能职责为注册、接收订单、接收心跳包、提供数据查询接口。

抢单系统的功能职责为计算通知在30s内,距离用户5km内可参与抢单的快递员。

财务系统的功能职责为统计财务报表、计算利润、开发票等功能。

数据中心的功能职责为提供所有已完成单据的原始数据,作为数据仓库为大数据平台做基础。

抢单场景

活动图
  1. 用户在app上下单,提交至系统。

  2. 快递员通过app,每隔30s同步一次位置到系统。

  3. 系统接到单后,统计30s内在直线距离用户5km范围内需通知到的快递员后,发出抢单通知。

  4. 快递员抢单后,提交抢单人员信息(包括定位),系统计算快递员所在位置与用户的距离,通知用户已接单,并提示快递员在多少分钟内将到达。

时序图
  1. 用户在app上下单,提交至系统。

  2. 快递员通过app,每隔30s同步一次位置到系统。

  3. 系统接到单后,统计30s内在直线距离用户5km范围内需通知到的快递员后,发出抢单通知。

  4. 快递员抢单后,提交抢单人员信息(包括定位),系统计算快递员所在位置与用户的距离,通知用户已接单,并提示快递员在多少分钟内将到达。

订单状态图



发布于: 2020 年 09 月 17 日 阅读数: 31
用户头像

晓-Michelle

关注

还未添加个人签名 2020.05.30 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-week14-大作业1