架构师训练营第 1 周作业——食堂就餐卡系统设计
0. 系统需求
系统中每个消费者都有一张卡,在管理中心注册缴费,卡内记着消费者的身份、余额。
使用时将卡插入收款机则显示卡上金额,服务员按收款机上数字键,收款机自动计算并显示消费额及余额。
管理中心的管理员监视每一笔消费,可打印出消费情况的相关统计数据。
1. 需求分析
本系统的使用者有 3 类人:消费者、服务员和管理员,他们在系统中的主要功能如下:
消费者:注册,缴费,消费,查看余额。
服务员:帮助消费者查看余额,扣除消费额。
管理员:给消费者注册,充值,查看消费记录,查看和打印消费者的统计数据。
2. 设计概述
2.1 功能概述
食堂就餐卡系统是为了方便消费者,降低管理员的工作量而设计。
2.2 非功能约束
系统用户量为在校师生,大概 3 万人,用餐高锋期在早晨 7:20~8:00、中午 11:30~12:30、晚上 17:30~18:30,全校共 10 个食堂,200 个窗口(服务员),日均订单量可能超过 10 万笔。
1、查询性能目标:平均响应时间<300ms,95%响应时间<500ms,单机 TPS>20;
2、下单性能目标:平均响应时间<800ms,95%响应时间<1000ms,单机 TPS>10;
3、系统核心功能可用性目标:>99.97%;
4、数据持久化目标:>99.9999%;
5、系统安全目标:系统通讯对称加密;
3. 系统部署图与整体设计
系统上线时预计部署 2 台物理机,1 台用做系统的服务器,1 台数据库服务器。本系统分为个 3 个子系统,分别为用户子系统,计费子系统和报表子系统,计费子系统用户与收款机交互。
3.1 系统部署图
用户子系统的功能职责为消费者注册、收款机注册。
计费子系统的功能职责为充值、消费和查看余额。
报表子系统的功能职责为查询某个用户某笔消费记录、查看消费统计数据、打印消费统计数据。
3.2 充值场景子系统序列图
消费者充值前先在用户子系统里注册,等级其身份。
消费者注册成功后,将要充值的钱交给管理员,计费子系统记录其充值的金额,同时给报表子系统发一条充值的消息,报表子系统记录充值消息,充值成功后返回用户余额,
3.3 消费场景子系统序列图
消费者选好商品后到服务员窗口处付款,将卡放到收款机上,收款机识别卡,通过计费子系统查询该卡的余额。
如果余额充足,在收款机上扣除消费金额,收款机将要扣除的款项发送给计费子系统,计费子系统实行扣款,并将扣款信息发送给报表子系统,报表子系统记录扣款信息,然后返回该卡余额。
3.4 充值场景子系统活动图
消费者来充值,如果没有卡,帮消费者注册账号,然后给卡充值,系统记录充值流水。
3.5 消费场景子系统活动图
1、消费者选好商品后,到收费处付款。
2、服务员拿到消费者的卡后,将卡插入收款机,收款机查询开的余额,如果余额不足,用户需要充值;如果余额充足,收款机向计费子系统发起扣款请求,计费子系统扣款,给报表子系统发送一条记录扣款流动的消息,成功以后返回消费者余额。
4. 用户子系统设计
用户子系统的主要功能是管理系统用户,收款机。
......
......
......
5. 计费子系统设计
用户子系统的主要功能是充值、扣款和查看余额。
......
......
......
6. 报表子系统设计
报表子系统的主要功能是查看消费记录,查看和打印消费者的统计数据。
......
......
......
版权声明: 本文为 InfoQ 作者【在野】的原创文章。
原文链接:【http://xie.infoq.cn/article/084c6f09779ca47a586f1ed68】。
本文遵守【CC-BY 4.0】协议,转载请保留原文出处及本版权声明。
评论 (1 条评论)