写点什么

架构师训练营大作业一

用户头像
qihuajun
关注
发布于: 2020 年 09 月 19 日

背景



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



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



产品需求

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

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

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

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

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

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



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



用例图





系统中有3个角色:



用户:寄快递

快递员:收快递和送快递

调度系统:进行订单的调度和结算



下单活动图





系统部署模型





说明:



鉴于系统上线初期请求量有限,以及考虑到业务的复杂度,现在未拆分微服务,而是采用应用服务整体部署的方案。



最前端采用Nginx作为负载均衡服务器,把请求转发给后面的多台应用服务器。 多台应用服务器采用Redis作为Session服务器,保存用户session。



考虑到未来数据规模增长,数据库没有采用MySQL,而是直接采用了分布式的关系数据库系统TiDB,完全兼容MySQL的分布式New SQL数据库,数据量增长的时候可以方便进行水平扩展。



位置存储服务采用分布式Redis数据库结合TiDB数据库,Redis中存储用户最新的位置信息并借助Redis的GEO数据结构方便的进行位置筛选。TiDB中存储用户的所有历史位置信息,可以对用户的行踪进行跟踪记录和统计分析。



下单抢单场景时序图





订单状态图



用户头像

qihuajun

关注

还未添加个人签名 2009.05.15 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营大作业一