架构师培训 -01 食堂就餐卡系统设计文档
概要设计
食堂就餐卡系统是一个管理会员卡信息的系统,是食堂用于管理会员信息及收入账目的主要系统,为食堂解决了收费效率低,收取现金容易丢失等主要食堂管理问题。
功能描述
食堂就餐卡系统主要功能包括:会员管理,消费管理,卡信息管理。使用者包括:消费者、管理员和服务员。
非功能描述
食堂就餐卡系统目标是支持 10 万人就餐的大食堂使用,预计需要 1200 台收款机,一年产生消费记录预计 1 亿条。
1、查询卡信息性能目标:平均响应时间<300ms,95%响应时间<500ms,单机 TPS>300;
2、刷卡扣款性能目标:平均响应时间<300ms,95%响应时间<500ms,单机 TPS>300;
系统部署图与整体设计
食堂就餐卡系统上线时预计部署 11 台物理机器,用户管理系统 2 台、餐费管理系统 4 台,MYSQL 数据库 2 台,ES 集群 3 台。
系统部署图
用户管理子系统功能职位为管理用户信息和餐卡信息,餐费管理子系统主要为收款机提供餐费明细记录、卡余额查询及费用报表等功能。
用户管理系统设计
用户管理系统主要给用户提供用户信息维护功能,给管理员提供用户查看、管理、发卡等功能。其中主要包含了前端 web、用户管理服务(springboot)和 MySQL 组件。
用户管理系统组件图
用户管理系统包含三个组件:
前端:是基于 vue 开发的页面,主要给用户和管理提供操作和查看用户信息及卡信息入口,需要依赖用户管理服务组件来完成各种操作。
会员管理:是基于 springboot 开发的服务,主要实现了用户信息管理各种操作及卡信息各种管理的,产生的各种数据存储在 mysql 组件中。
MYSQL:主要用于对各种业务数据进行持久化。
注册功能组件序列图
餐卡管理系统设计
餐卡管理系统主要职责是维护餐卡的有效性,餐卡账户金额和餐卡消费记录,提供相关报表等。其中主要包含了前端 web、餐卡管理服务(springboot)、MySQL 组件和 ES 组件。
餐卡管理系统组件图
餐卡管理系统包含四个组件:
收款机:是基于 android 开发的,主要供服务员用于收款使用,需要依赖餐卡服务组件来完成收费操作。
餐卡服务:是基于 springboot 开发的服务,主要提供餐卡费用消费记录记录,餐卡金额计算和餐费统计等功能,餐卡金额维护数据存储在 mysql 组件中,消费记录存储在 ES 组件中。
MYSQL:主要用于记录卡信息和卡金额。
ES:主要用于存储消费记录和餐费统计功能。
刷卡功能组件序列图
评论