写点什么

极客大学架构师训练营 - 同城快递业务架构设计 - 大作业一

用户头像
John(易筋)
关注
发布于: 2020 年 09 月 16 日

极客大学架构师训练营毕业设计完成,笔者把所有文章汇集如下: 点击链接☞ 架构师资源汇总 从入门到精通 文章汇总

题目







1 设计概述

同城快递系统是同一个城市里面方便用户快速寄送快递的业务,公司作为新切入快递业务,对用户体验,收发快递的速度都要有竞争力。

1.1 功能概述



同城快递系统主要功能包括用户下单,用户提供货品,用户收货;快递员抢单,快递员去指定地点收货,快递员送货达到目的地。常用场景如下:

* a) 用户下订单,快递员抢单。

* b) 快递员与用户沟通取货时间地点,快递员按照信息去取货品,送回站点,重新规划派送路径。

* c) 快递员从服务点拿取要送的货品,送达目标客户。

* d) 快递员app自动上报位置。

* e) 有新订单,抢单微服务给 5km 内的快递员 发可以抢单信息。

* 7)快递员上班地理位置信息。

以下为用例图,主要角色有用户,快递员,货品,订单, 消息系统。



1.2 ⾮功能约束

同城快递系统上线3个月 日订单超过1万(按照2万计),用户量预计20万,日UV达2万;未来预计⼀年,日订单超过50万(按照100万计),用户量预计1000万,⽇UV达到100万。

1. 查询性能⽬标:平均响应时间<300m s,95% 响应时间<500m s,单机T PS>100;

2. 下单性能⽬标:平均响应时间<800m s,95% 响应时间<1000m s,单机T PS>30;

3. 监控性能⽬标:平均响应时间<800m s,95% 响应时间<1000m s,单机T PS>30;

4. 系统核⼼功能可⽤性⽬标:>99.97% ;

5. 系统安全性⽬标:系统可拦截DDDOS攻击,密码数据散列加密,客户端数据HT T PS加密,外部系统间通信对称加密;

6. 数据持久化⽬标:>99.99999% 。

# 2.系统部署图与整体设计

系统上线时预计部署120台物理机,需要网关服务器,微服务服务器,负载均衡,分布式缓存,消息队列服务器,消息消费者服务器,Redis内存数据库,数据库服务器等。

2.1 系统部署图





1. 网关服务主要是用户鉴权,防止攻击,第一个面向用户系统,需要10台服务器。

2. 消息队列服务器,负责快速响应用户请求,需要5台服务器。

3. 负责均衡服务器,需要对流量进行均衡到业务服务器,需要5台服务器。

4. 分布式缓存服务器,这是减轻服务器的重要手段,需要10台服务器。

5. 用户微服务,正常在注册、登录才会访问,流量不是很大,需要5台服务器。

6. 订单微服务,大流量入口,用户下单的时候,快递抢单,用户状态等操作频繁,需要50台服务器。

7. 抢单微服务,用户下单成功以后,抢单微服务给附近5km 的快递员发送新订单推送;快递员会抢单,通过抢单微服务,最终确定接单的快递员;需要5台服务器;

8. Redis 内存数据库,记录快递员的最新地理位置信息;需要5台服务器;

9. 数据采集系统的功能职责为查询用户消费数据,生成统计报表,部署5台服务器,依赖用户系统和订单新系统,实现订单信息和报表统计功能。

10. 数据库系统,业务系统与数据采集服务数据分离,都需要主数据库、重数据库,需要20台服务器。

11. 第三方支付系统为外部系统,支持用户用微信、支付宝、银联等第三方支付充值。这里是订单微服务的一部分。



2.2 下单抢单场景系统序列图





3. 用户下单抢单场景系统设计



3.1 下单抢单场景的业务活动图(角色领域泳道模型)



3.2 订单状态图模型



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

John(易筋)

关注

问渠那得清如许?为有源头活水来 2018.07.17 加入

工作10+年,架构师,曾经阿里巴巴资深无线开发,汇丰银行架构师/专家。开发过日活过亿的淘宝Taobao App,擅长架构、算法、数据结构、设计模式、iOS、Java Spring Boot。易筋为阿里巴巴花名。

评论

发布
暂无评论
极客大学架构师训练营 - 同城快递业务架构设计 - 大作业一