练习题:食堂就餐卡系统设计
系统中每个消费者都有一张卡,在管理中心注册缴费,卡内记着消费者的身份、余额。
使用时将卡插入收款机则显示卡上金额,服务员按收款机上数字键,收款机自动计算并显示消费额及余额。
管理中心的管理员监视每一笔消费,可打印出消费情况的相关统计数据。
请设计系统用例图,组件图,组件时序图,部署图。
食堂就餐卡系统是⼀个消费管理的系统,为了简化就餐人员和管理人员的流程优化,便于人员就餐和系统管理人员做数据统计。
系统主要功能包括注册缴费、账户管理、收费管理、账户统计等功能,使⽤者包括食堂就餐人员、系统管理人员、运维监控人员、设计开发人员。
1. 查询性能⽬标:平均响应时间<300ms,95%响应时间<500ms,单机TPS>100;2. 下单性能⽬标:平均响应时间<800ms,95%响应时间<1000ms,单机TPS>30;
3. 性能⽬标:平均响应时间<800ms,95%响应时间<1000ms,单机TPS>30;
4. 系统核⼼功能可⽤性⽬标:>99.97%;
5. 系统安全性⽬标:系统可拦截非法请求 、SQl注入、XSS脚本攻击,密码数据散列加密,客户端数据
系统上线时预计部署14台物理机,内部系统7个,和外部第三⽅1个系统交互。
网关的功能职责为接受外部请求,做权限控制、路由分发请求,部署2台服务器,做负载功能;
注册缴费端和注册缴费系统职责为消费者卡管理和充值业务,部署4台服务器,依赖网关系统和数据管理系统,需要对接第三方支持系统;
消费系统管控端和消费系统职责为消费管理和账户余额处理,部署4台服务器,需要依赖网关个数据管理系统;
数据监控管理端和数据管理系统职责为统计消费记录和输出消费记录报表,需要部署4台服务器,需要依赖网关系统。
1. 缴费时,通过缴费管控端发起缴费请求,网关接受到请求后做路由分发到缴费系统 ,缴费系统请求第三方系统发起请求通知,支持成功后发送异步消息到mq,数据系统通过mq处理异步消息;
2. 消费时,通过消费管控发起消费请求,网关接受到请求后做路由分发到消费系统,处理成功之后,发送异步消息到mq,数据系统通过mq处理异步消息;
3、统计数据时,通过数据管控发起请求,网关接受到请求后做路由分发到数据系统;
缴费系统主要的职责是用户开卡,账户充值的功能
缴费系统一共分为3个组件,pay-front的主要功能是做开户和充值的可视化操作,需要依赖组件pay-console做业务逻辑处理,并发送异步消息的数据管理;还要依赖common组件提供最基础的框架功能。
对于开户请求,后端先做业务逻辑处理,然后入库操作;
对于充值操作,pay-console接收到充值请求后做充值业务逻辑,调用第三方充值系统,返回信息之后做入库操作,最后发送异步消息登记。
在充值场景中,pay-console接收到充值请求后做充值业务逻辑,调用第三方充值系统,返回信息之后做入库操作,最后发送异步消息登记。
PayServiceImpl和接口AccountServiceImpl分别实现接口PayService、AccountService,PayController聚合两个接口,PayService并调用支付代理。
PayServiceImpl和接口AccountServiceImpl分别实现接口PayService、AccountService,PayController聚合两个接口,PayService并调用支付代理。
初始化状态为未处理,接受请求后标记为处理中状态,在业务逻辑检查是改为检查中状态,检验失败为订单失败,检验通过为支付中订单,支付成功和支付失败两个状态。
消费系统一共分为3个组件,consumer-front的主要功能是做消费的可视化操作,需要依赖组件consumer-console做业务逻辑处理,并发送异步消息的数据管理;还要依赖common组件提供最基础的框架功能。
对于消费请求,consumer-console收到消费请求最业务逻辑处理,然后进行数据库登记,最后发送异步消息至数据管理中心;
在消费场景中,consumer-console收到消费请求最业务逻辑处理,然后进行数据库登记,最后发送异步消息至数据管理中心;
数据统计系统一共分为3个组件,data-front的主要功能是做消息接送和数据统计的可视化操作,需要依赖组件data-console做业务逻辑处理;还要依赖common组件提供最基础的框架功能。
对于统计请求来说,data-management系统接收到统计请求做逻辑处理,并返回对应的处理数据。
在数据统计场景来说,data-management系统接收到统计请求做逻辑处理,并返回对应的处理数据。