写点什么

架构作业一

用户头像
薛凯
关注
发布于: 2021 年 01 月 10 日

大作业(一)

背景:

通达是某上市公司全资投资成立的一家物流快递公司,主要进行同城快递业务,公司刚刚成立,组建 20 人技术部门,准备两个月后系统开发完成上线,你是后端架构师,请你完成系统顶层架构设计,并组织架构评审会议。

说明:技术部没技术负责人,由产品负责人兼管(产品负责人为原某互联网大厂的产品总监,研发出身),架构师(你)是技术部最资深的技术人员。

产品需求:

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

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

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

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

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

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

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

技术方案建议:

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

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

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

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

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


1 背景

1.1 需求概述(用例图)




1.2 下单抢单场景活动图


1.3 期望

组建 20 人技术部门,准备两个月系统开发完成并上线

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

1.4 核心系统

平台主要有以下几个核心系统组成:



1.5 计划

由于两个月周期较长,计划采用敏捷交付,两周一个迭代,逐步交付的方式进行开发。几个人负责一个模块,进行分模块交付。

2 系统核心设计

2.1 系统部署模型


分布式缓存 CDN 服务:前期可以先不用,主要用于缓存静态资源,就近为用户提供服务

负载均衡服务器:用于将请求负载到多个节点

网关服务:用于将不同类型的服务分发到不同的微服务进行服务

消息推送:用于向快递员推送可抢定单状态

用户服务:管理用户服务,依赖于订单服务进行下单,依赖于支付服务进行支付

快递员服务:管理快递员位置,依赖于订单服务及消息推送服务

统计分析:主要进行运营相关数据报表的统计分析,依赖于订单信息

数据库服务器:两台服务器,使用主从复制的方式

2.2 下单抢单场景服务器时序图


2.3 订单状态图




用户头像

薛凯

关注

还未添加个人签名 2018.09.02 加入

还未添加个人简介

评论

发布
暂无评论
架构作业一