架构师训练营第一周 - 食堂就餐卡系统设计
作业一:食堂就餐卡系统设计
系统中每个消费者都有一张卡,在管理中心注册缴费,卡内记着消费者的身份、余额。
使用时将卡插入收款机则显示卡上金额,服务员按收款机上数字键,收款机自动计算并显示消费额及余额。
管理中心的管理员监视每一笔消费,可打印出消费情况的相关统计数据。
请设计系统用例图,组件图,组件时序图,部署图。
作业二:根据当周学习情况,完成一篇学习总结
架构设计文档
1 设计概述
食堂就餐卡系统,是一个方便顾客就餐消费和食堂收款的系统。
通过脑图,梳理整体设计:
1.1 功能概述
系统功能包括:管理中心开卡注册、缴费、统计消费情况、收款机刷卡消费。
使用者包括:管理中心后台管理员、收款机(消费者、收银员操作时的实体对象)。
1.2 非功能约束
系统未来预计一年开卡数达到 5000 张,日订单量达到 200 单
1.查询性能目标:平均响应时间 < 300ms,95% 响应时间 < 500ms,单机 TPS > 100
2.消费性能目标:平均响应时间 < 1000ms,95% 响应时间 < 1500ms,单机 TPS > 30
3.系统核心功能可用性目标:> 99.99%
4.系统安全性目标:系统可拦截 XSS、SQL注入、DDOS攻击,使用 HTTPS 协议,系统间通信使用对称加密
5.数据持久化目标:99.9999%
2 系统部署图与整体设计
系统上线时预计部署2台物理机,做集群高可用,包含3个子系统。其中涉及卡操作,均需要与读卡器设备进行交互。
2.1 系统用例图
管理中心后台管理员:通过读卡器读取卡信息(在卡面ID不可修改的前提下,不依赖读卡器也行),通过与卡管理系统交互进行开卡操作,通过与交易系统交互完成缴费操作,通过与统计系统交互完成数据统计操作。
收款机:通过与卡管理系统交互读取卡绑定信息、余额信息,通过与交易系统交互完成收款与账户扣款。
2.2 系统部署图
卡管理系统的功能职责为:卡ID存储。顾客信息绑定、卡余额等均在系统中存储
交易系统的功能职责为:缴费、消费场景与余额相关的操作处理
统计系统的功能职责为:请求卡管理系统、交易系统,根据需要维度聚合出统计信息
2.3 卡注册场景时序图
注册时通过读卡器读取卡ID与卡管理系统交互,绑定注册人身份信息。开卡缴费,与交易系统通过 https 通信交互。
统计系统在任意时段,均可以请求卡管理系统与交易系统,并聚合出相关统计信息。
2.4 缴费场景时序图
缴费时通过读卡器读取卡ID与卡管理系统交互,获取系统中卡余额并与交易系统交互,成功后修改卡余额。
2.5 消费场景时序图
消费时通过收款机读取卡ID与卡管理系统交互,获取系统中卡余额并显示。输入消费金额后,请求交易系统,成功后修改卡余额。
2.6 统计场景时序图
管理中心通过统计系统,调用交易系统获取交易数据,并根据需要的维度进行聚合展示。
3 卡管理系统设计
当前系统逻辑还较为简单,不需要过多的组件配合(当前系统虽拆分为3个,可在同一代码库内以模块拆分即可)。
3.1 卡类图
类字段包含卡ID、顾客信息、卡余额,类方法包含开卡。
4 交易系统设计
4.1 交易类图
类方法包含缴费、消费。
5 统计系统设计
5.1 统计类图
类方法,当前仅需要统计消费情况。
打赏: 微信
本作品采用 知识共享署名-相同方式共享 4.0 国际许可协议 进行许可。