写点什么

大作业 1

用户头像
追风
关注
发布于: 2020 年 12 月 22 日

背景

通达是某上市公司全资投资成立的一家物流快递公司,主要进行同城快递业务,公司刚刚成立, 组建 20 人技术部门,准备两个月后系统开发完成上线,你是后端架构师,请你完成系统顶层架 构设计,并组织架构评审会议。 说明:技术部没技术负责人,由产品负责人兼管(产品负责人为原某互联网大厂的产品总监, 研发出身),架构师(你)是技术部最资深的技术人员。


产品需求

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

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

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

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

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

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

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

技术方案建议


• 用户下单请求通过负载均衡服务器分发给下单网关集群

• 使用消息队列向 5km 内的快递员发送通知(消费者服务器获取的消息内容包括:用户地址, 快递员列表)

• 快递员实时位置缓存在分布式缓存 Redis 中

• 数据存储使用 MySQL,第一个上线版本不要求做数据分片,但要做主从复制

说明:

以上技术方案建议是公司请的外部技术顾问(该顾问是产品负责人的朋友)给出的,具 体是否合适请架构师自己定夺

练习要求

PPT 方式输出系统概要设计(顶层架构设计),包含以下模型,进行架构设计评审

• 系统关键用例图,描述产品主要功能需求

• 下单抢单场景的业务活动图,角色领域泳道模型(角色:用户,快递员,系统)

• 系统部署模型:描述系统服务器关系(如:网关服务器,微服务服务器,负载均衡,分布式缓存, 消息队列服务器,消息消费者服务器,数据库读写分离)

• 下单抢单场景的服务器时序模型

• 订单状态图模型

说明:ppt 需要在备注区对模型图进行必要的备注说明 PS:练习要求是大作业的最低要求,建议自己代入角色,思考如何交出一份漂亮的设计文档, 奠定自己在公司的地位。


用例图

下单抢单场景的业务活动图

系统部署模型


说明:

1、接入层:nginx+网关

2、业务层:订单(集群)、抢单、配送、消息推送

订单服务产生的数据通过 MQ 下发。

抢单服务消费订单,创建配送任务

快递员抢单,生成配送单

上传地址 TPS 比较大,单独部署一个位置服务

3、中间件:Redis、MQ

4、数据库:mysql(订单库、消息库、配送库、任务+位置库)


下单抢单场景的服务器时序模型

订单状态图


用户头像

追风

关注

还未添加个人签名 2018.01.08 加入

还未添加个人简介

评论

发布
暂无评论
大作业1