架构练习:同城快递系统设计

背景

需求

建议

要求

XXX同城快递系统概要设计

1 设计概述

XXX同城快递系统是一个提供同城快递的下单、收单和送单的系统,是公司的核心业务,决定了公司的主要发展方向。

1.1 功能概述

系统的主要功能包括如下几点:

  • 用户通过APP发起快递下单请求并支付
  • 快递员通过APP定期上报自己的地理位置
  • 系统受到订单后通知5Km内的快递员
  • 快递员进行抢单,获取用户详细地址
  • 快递员到用户地址收取快递并记录:已收件
  • 快递员将快递送到目的地并记录:已送达

系统的使用者主要有普通用户和快递员。用例图如下所示:

用例图

1.2 非功能约束

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

2 系统部署图与整体设计

系统上线时预计部署15台物理机,10个子系统。

2.1 系统部署图

部署图
  • 负载均衡服务器将APP的请求均衡转发到网关集群之中
  • 网关集群用来提供APP所需API的入口,对请求进行校验和过滤
  • 下单服务提供给用户下单相关功能
  • 抢单服务提供给快递员定位上报和抢单相关功能
  • 消息队列提供了发布订阅基础功能
  • 订单服务用来管理订单相关数据的访问和更新
  • 支付服务用来管理订单支付流程以及与第三方集成功能
  • 位置服务用来管理管理快递员位置信息
  • Mysql集群采用主备模式提供订单等信息存储
  • Redis集群用作快递员地理位置的缓存服务

2.2 下单抢单场景活动图

如下图,用户下单后,选择支付方式支付,支付成功后,系统通知快递员进行抢单,快递员抢单成功后,获取到用户的地址,前往用户地址收取快递,快递送达后,订单完成。


活动图

2.3 下单抢单场景时序图

下单抢单场景时序图如下:

时序图

2.4 订单状态图

订单状态图如下


状态图
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。