极客大学架构师训练营 -- 食堂就餐系统架构设计⽂档 -- 第一次作业
食堂就餐系统架构设计⽂档
1 设计概述
食堂就餐卡系统是⼀个学校里面学生和老师以及其他人员就餐的系统,是公司面对学校战略的核⼼系统,承担着公司拓展学校市场的⽬标任务。
1.1 功能概述
食堂就餐卡系统主要功能包括管理中心给消费者开卡,服务员收款机查询金额,服务员收取消费金额,管理中心可以查询相关统计记录,使⽤者包括学生、老师、以及学校工作人员。常用场景如下:
* a) 系统中每个消费者都有一张卡,在管理中心注册缴费,卡内记着消费者的身份、余额。
* b) 使用时将卡插入收款机则显示卡上余额,服务员按收款机上数字键,收款机自动计算并显示消费额及余额。
* c) 管理中心的管理员监视每一笔消费,可打印出消费情况的相关统计数据。
以下为用例图,主要角色有消费者,管理中心,服务员。
1.2 ⾮功能约束
食堂就餐卡系统未来预计⼀年⽤户量达到100万,⽇订单量达到20万,⽇UV达到10万。
1. 查询性能⽬标:平均响应时间<300m s,95% 响应时间<500m s,单机T PS>100;
2. 下单性能⽬标:平均响应时间<800m s,95% 响应时间<1000m s,单机T PS>30;
3. 监控性能⽬标:平均响应时间<800m s,95% 响应时间<1000m s,单机T PS>30;
4. 系统核⼼功能可⽤性⽬标:>99.97% ;
5. 系统安全性⽬标:系统可拦截DDDOS攻击,密码数据散列加密,客户端数据HT T PS加密,外部系统间通信对称加密;
6. 数据持久化⽬标:>99.99999% 。
# 2. 系统部署图与整体设计
系统上线时预计部署100台物理机,2个⼦系统,和一个外部系统第三方支付系统交互。
2.1 系统部署图
a. 用户订单系统的功能职责为注册用户信息,用户消费,更新用户余额,部署95台服务器,实现用户注册、充值、订单消费功能,余额查询功能。
b. 数据采集系统的功能职责为查询用户消费数据,生成统计报表,部署10台服务器,依赖用户系统和订单新系统,实现订单信息和报表统计功能。
c. 第三方支付系统为外部系统,支持用户用微信、支付宝、银联等第三方支付充值。
2.2 用户充值、下单场景系统序列图
3. 用户订单系统设计
用户订单系统的主要职责是用户信息管理,订单管理,余额管理,其中主要包含了用户管理组件,订单管理组件。
3.1 用户订单系统组件图
用户管理组件的功能主要是用户信息的注册、更新、注销,余额的充值、消费。
订单管理组件,需要依赖于用户管理组件,是用户订单系统的核心组件,用户订单需要获取用户的余额,扣款成功,订单才算完成。
3.1.1 用户管理组件,用户注册、用户充值时序图
3.1.2 订单管理组件,消费者消费时序图
3.1.3 订单管理组件,消费者消费活动图
3.2 用户管理组件设计
用户管理组件的主要职责是用户注册、用户余额更新,注销,其中主要包含了用户类,用户信息管理类,用户数据库操作类。
UserController 类主要功能是对外提供用户信息操作的服务,UserController聚合了UserService;UserService实现了接口IService,IService主要是对用户增删改查的抽象,UserService把用户数据处理好后传给UserDao进行数据库入库;UserDao聚合了User对象,对用户数据进行封装。
3. 3.3 订单状态图
a) 消费者下单(订单未完成) > 到用户余额扣款 > 扣款成功 > 下单成功 > 订单完成。
b) 消费者下单(订单未完成) > 到用户余额扣款 > 扣款失败 > 下单失败 > 订单完成。
版权声明: 本文为 InfoQ 作者【John(易筋)】的原创文章。
原文链接:【http://xie.infoq.cn/article/713bd3b391a78936665dac557】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论