食堂就餐卡系统架构设计文档
1 设计概述
食堂就餐卡系统是一个服务于企业内部员工的系统,方便用户就餐,也能为用户的部分财产提供安全服务。
1.1 功能概述
系统主要功能包括就餐卡注册、充值、用户身份及余额查询、扣费、消费数据监控与打印。
使用者包括员工、服务员、管理员。
1.2 非功能约束
食堂就餐卡系统预计一年用户量在5万以内,日消费次数为50万以内。
1.余额等查询性能目标:平均响应时间<100ms,95%响应时间<500ms,单核TPS>100;
2.充值与扣费性能目标:平均响应时间<800ms,95%响应时间<1s,单核TPS>50;
3.注册登记性能目标:平均响应时间<800ms,95%响应时间<1s,单核TPS>50;
4.系统核心功能可用性目标:>99.99%;
5.系统安全性目标:系统课拦截频繁消费,每张卡每天消费次数、消费金额收到限制。
6.数据持久化目标:>99.99999%。
2 系统部署图与整体设计
系统上线时预计部署2台物理机,3个子系统,和公司1个系统交互,和外部第三方1个系统交互。
2.1 系统用例图
2.2 系统部署图
客户端:客户与管理中心的桥梁,用户通过客户端来访问服务,比如注册、查询、充值等。
Nginx网关:用来转发用户请求时间。
用户数据监控系统:通过管理中心获取用户的过往消费数据并聚类分析。
卡管理中心:食堂就餐卡系统的核心逻辑处理部分,并且唯一且直接与后台数据库打交道。
收款机:用户扣费。
第三方支付系统:可以通过第三方支付系统进行充值。
公司财务系统:对接卡管理中心,可以将员工的工资直接转到卡管理中心,实现充值。
2.3系统组件图
去除第三方系统,共有5个子组件。
用户接口组件:与用户打交道的SDK,用户可以用来注册、查询个人信息。
网关:用来转发用户请求时间。
管理中心组件:食堂就餐卡系统的核心逻辑处理部分,并且唯一且直接与后台数据库打交道。
后台数据库:存储用户个人信息以及消费、余额等信息。
数据监控组件:通过管理中心获取用户的过往消费数据并聚类分析。
2.4 注册登记场景子系统时序图
step1:用户通过app向管理中心发起注册事件,中间经过网关服务;
step2:网关将事件转发给上游管理中心,管理中心判断用户是否重复注册;
step3:若第一次注册,会将用户数据写入数据库,如已经注册过则直接向用户返回成功并告知什么时候注册过;
step4:用户拿到管理中心的注册返回值;
版权声明: 本文为 InfoQ 作者【朱月俊】的原创文章。
原文链接:【http://xie.infoq.cn/article/d8cdeb3932921615a68536926】。文章转载请联系作者。
评论