架构师训练营 大作业
0 期 3 班 4 组 杨娴艳
通达同城配送平台设计文档
1 设计概述
通达同城配送平台专注于即时配送领域,本地生活最后一公里。基于通达物流配送业务为顾客提供任意时间的即时配送和同城配送服务,配送品类全、速度快,服务好,为顾客提供极速的送达体验。
1.1 功能概述
寄件人可通过平台 APP 端发起快递下单请求并进行支付;
快递员通过配送端 APP 上报自己的位置,每 30 秒上报一次;
平台收到快递下单请求后,向距离寄件人直线距离 5KM 内的所有快递员发起通知;
快递员需通过抢单进行接单,接单成功后,系统向其发送寄件人详细地址;
快递员到寄件顾客处收取快递,并记录到系统中,订单为已收件状态;
快递员将快递送到目的地,并记录到系统中,订单为已送达。
1.1.1 系统用例图
1.2 非功能性概述
系统预计三个月日订单量超过 1 万,一年日订单超过 50 万;
查询性能⽬标:平均响应时间<300ms,95% 响应时间<500ms,单机 TPS>100;
下单性能⽬标:平均响应时间<800ms,95% 响应时间<1000ms,单机 TPS>30;
系统核⼼功能可⽤性⽬标:>99.97% ;
系统安全性⽬标:密码数据散列加密,客户端数据 HTTPS 加密传输,外部系统间通信对称加密;
数据持久化⽬标:>99.99999% 。
2 系统部署图与整体设计
2.1 系统部署图
部署详细说明:
业务系统包括顾客下单平台、快递员配送平台和运营管理平台;
共享服务中心包括用户中心、快递员中心、订单中心、支付中心和短信服务等。
开发框架采用 Spring Cloud 系列,通过 Spring Cloud Kubernetes 来集成 Kubernetes。
PasS 层采用阿里云提供的基础服务,主要涉及 ACK(容器服务 Kubernetes 版)、ACR(容器镜像服务)、日志服务 SLS、 云监控、云数据库 RDS 、云数据库 Redis、对象存储 OSS 和短信服务 Short Message Service,RabbitMQ(消息队列)目前运行在 ACK 的容器中。
IaaS 层采用阿里云提供的基础服务,涉及 ECS(虚拟机)、负载均衡 SLB、专有网络 VPC、弹性伸缩、弹性公网 IP、文件存储 NAS、访问控制等。
2.2 下单抢单服务器时序图
时序图详细说明:
寄件人通过寄件人 APP 提交下单信息,后端应用创建待支付订单;
寄件人输入支付密码,后端应用修改待支付订单为待派送状态,并异步存储消息到消息中间件;
快递员派送应用实时监听消息中间件,当消息被消费时,向距离寄件人 5KM 以内的所有快递员发送消息,消息被存储到消息中间件,并向消息中间件存储订单待抢单消息;
快递员收到消息后通过快递员派送 APP 进行抢单,第一个消费消息的快递员抢单成功,系统异步发送用户详细地址;
快递员到寄件人处收取快递后,通过派送 APP 设置订单为已收件,快递员后端应用设置订单状态为已收件状态,系统异步向收件人发送短信收件码;
快递员将快递投递至收件人处,收件人提供短信收件码,快递员将收件码提交给配送 APP,快递员配送后端应用将订单设置为已完成.
2.3 下单抢单业务活动图
2.4 订单状态图
订单状态迁移说明:
订单取消原因:
版权声明: 本文为 InfoQ 作者【且听且吟】的原创文章。
原文链接:【http://xie.infoq.cn/article/805434ccd6edb89c6708e5528】。未经作者许可,禁止转载。
评论