架构师训练营第一期大作业
1.设计概述
该系统是一个同城快递系统,是某公司同城快递核心业务系统,承载着公司每年上亿份快递业务的任务目标
1.1 功能概述
用户通过 app 发起快递下单请求并支付
快递员通过自己的 App 上报自己的地理位置,每 30 秒上报一次
系统收到快递请求后,向距离用户直线距离 5km 内的所有快递员发送通知
快递员需要进行抢单,第一个抢单的快递员得到配单,系统向其发送用户详细地址
快递员到用户处收取快递,并记录到系统中:已收件
快递员将快递送到目的地,并记录到系统中:已送达
使用者包括下单用户,快递员。
1.2 非功能约束
1. 查询性能目标:平均响应时间<300ms,95%响应时间<500ms,单机 TPS>100;
下单性能目标:平均响应时间<800ms,95%响应时间<1000ms,单机 TPS>30;
系统核心功能可用性目标:>99.97%;
系统安全性目标:系统可拦截 Ddos 、 等常见网络攻击,密码数据散列加密,客户端数据 HTTPS 加密,外部系统间通信对称加密;
数据持久化目标:>99.99999%。
2 系统部署图于整体设计
2.1 部署图
说明:
该项目部署在 AWS 平台,使用原生云方式今生设计部署
1.AWS cloudfront 作为 CDN 服务,分发静态资源。
2.AWS ELB 作为负载均衡服务
3.AWS EKS 部署各个服务集群
4.关系数据库采用 AWS Aurora
5.队列服务采用 SQS
6.NOSQL 数据库采用 AWS DynamoDB
7.通知服务采用 SNS
以上服务都可以方便的进行继承和扩展,并且实行多区域部署,保证距离用户位置最近的服务进行响应,并且采用多区域的高可用性方式,保证服务的可用性。尤其是业务最繁重的位置更新,查询等服务由 AWS DynamoDB 承载可以满足高性能,高可用,自适应 scale in 和 out ,依托于整个云平台的有点,服务的集成,启用,维护也非常容易。
2.2 用例图
2.3 下单抢单活动图业务活动图,服务器时序图
2.4 订单状态模型图
评论