极客大学架构师训练营大作业
背景
产品需求
技术方案建议
练习要求
用例图
说明:
● app用户:进行下单和支付操作。
● 快递员:使用app进行抢单和状态更新。
● app后台:对终端app使用者的操作进行响应,派单给快递员且响应快递员的抢单请求。
泳道图
泳道图可以描述下单和抢单的完整过程。
部署图
说明:
● 负载均衡服务器:分担前端请求在大并发下的压力。
● 下单后台集群:接收前端下单支付及抢单请求。
● MQ服务器:用于存储可用于通知App的订单和快递员列表数据。
● 消费者服务器:拉取MQ订单和快递员数据,通知到快递员app用于抢单。
● 生产者服务器:拉取redis中快递员定时上报的位置信息,结合订单数据生产可用于通知快递员抢单的完整消息。
● 分布式缓存服务器:redis集群用于存储快递员定时上报的位置数据。
● Mysql主从服务器:存储订单数据及其他业务数据。
时序图
用户下单&支付
说明:用户下单并支付,订单通过后台入库到mysql主库,主库同步数据给备库。
快递员位置上报
说明:快递员会周期性上报自己的位置信息到后台,后台将位置信息存贮在redis集群。
系统派单
说明:
系统派单操作由生产者发起,整合redis快递员位置信息和mysql订单数据,推送到MQ,消费者接收到MQ消息通知后,发送消息到后台,然后后台通知给前端App,快递员看到订单通知的消息,发起抢单,抢单成功的快递员联系用户取件,更新取件状态,送货。
订单状态图
- 后记:
记得是5月30日,也就是开班的前一天晚上报的名,时间过得真的太快了,现在想想如果当时没有报名,那么这三个月的时间可能也就是匆匆而过了,把时间花在正确的地方,是对待青春的最好方式。