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