架构师训练营 - 第一周 - 食堂就餐卡系统架构设计

用户头像
坂田吴奇隆
关注
发布于: 2020 年 06 月 10 日

1. 设计概述

食堂就餐卡系统是一个集卡片管理、用户管理、交易管理、报表管理的管理系统,主要目的为了数字化员工在食堂就餐的体验,提高就餐效率。

1.1. 功能概述

系统的主要功能包括就餐卡管理、用户信息管理、用户充值消费管理、消费统计管理等功能,使用者包括食堂就餐人员、系统管理员、食堂收银服务员。

1.2. 非功能约束

系统未来预计⼀年⽤户量达到18W+左右,⽇订单量达到100W+。

1. 查询性能⽬标:平均响应时间<300ms,95%响应时间<500ms,单机TPS>100;

2. 下单性能⽬标:平均响应时间<800ms,95%响应时间<1000ms,单机TPS>30;

3. 性能⽬标:平均响应时间<800ms,95%响应时间<1000ms,单机TPS>30;

4. 系统核⼼功能可⽤性⽬标:>99.97%;

5. 系统安全性⽬标:系统可拦截XSS攻击、CSRF攻击、SQL注入攻击,用户不可横向越权。密码数据散列加密,客户端数据使用https对称加密,外部系统间通信对称加密;

  1. 数据持久化⽬标:针对用户保留近1年消费数据。



2. 系统部署图与整体设计

系统上线时预计部署28台docker实例,pos终端机10台,共4个子系统,2个公共基础组件,与外部三个第三方支付系统(微信、支付宝、银联)进行交互。

2.1 系统部署图





  • POS终端机主要运行收款机客户端软件,依赖用户管理系统、交易管理系统,并上报消费数据到报表管理系统,主要提供卡片消费扣款,余额显示功能。

  • API网关部署在外网,主要承载外网POS终端机的服务调用,进行服务路由的转发、鉴权、限流等功能,部署4台docker,保证高可用。

  • 卡片管理系统部署在内网数据中心,部署4台docker和1个主mysql数据库和从mysql数据库,主要实现卡片注册、卡片注销等功能。

  • 用户管理系统部署在内网数据中心,依赖卡片管理系统,部署4台docker和1个主mysql数据库和从mysql数据库,主要实现用户注册、用户身份管理、用户卡管理等功能。

  • 交易管理系统部署在内网数据中心,依赖用户管理系统,卡片管理系统、报表管理系统、部署8台docker和1个主mysql数据库和从mysql数据库,主要实现用户消费、卡片充值、卡片余额查询、卡片扣款等功能。

  • 报表管理系统部署在内网数据中心,依赖交易管理系统,部署4台docker和1对主从Oracle数据库,实现消费统计计算、消费流水打印等功能。

  • 注册中心部署在内网数据中心,为无状态节点,部署4台docker,主要实现卡片系统、交易系统、用户管理系统、报表管理系统、API网关的服务注册与发现。

2.2 食堂就餐卡系统用例图





2.2.1 卡片管理系统用例图





2.2.2 用户管理系统用例图





2.2.3 交易管理系统用例图





2.2.4 报表管理系统用例图



2.3 食堂就餐卡系统组件图





就餐卡系统分为POS终端机(集成第三方支付SDK)、API网关、注册中心、卡片管理、用户管理、交易管理、报表管理共7个组件。POS终端机依赖API网关进行内部管理系统服务的调用,API网关依赖注册中心组件进行API服务的发现与调用。卡片管理组件主要进行卡片的注册与注销,不依赖与其他系统。用户管理组件主要进行用户的注册,身份管理,并进行用户与卡的关联,依赖于卡片管理组件。交易管理主要进行卡片的消费等一系列功能,依赖于用户管理组件、卡片管理组件。报表管理主要进行消费统计与打印,依赖交易管理组件的消费数据。

2.4 场景组件时序图



2.4.1 用户注册时序图



2.4.2 用户刷卡消费时序图



2.4.3 打印消费记录时序图





发布于: 2020 年 06 月 10 日 阅读数: 28
用户头像

坂田吴奇隆

关注

还未添加个人签名 2019.01.06 加入

还未添加个人简介

评论

发布
暂无评论
架构师训练营-第一周-食堂就餐卡系统架构设计