台球计费系统设计文档 #
实现一套计费系统、用于台球计费。该系统主要由三个部分组成。(服务端、商家端、客户端).
本文页分别对三个部分的功能介绍。
一、 服务端 #
服务端由 网关、业务服务器、数据库。三部分组成。后期会增加APP服务端部分(用于处理移动互联网业务)
1.1 网关 #
网关主要扮演负载分配、故障转移功能。
1.2 业务服务器 #
业务服务器主要负责处理商户资料与配置、交易(开台、结算、加钟、换台等)、计费、会员管理、等核心业务。提供对商家端的API接口。
1.3 数据库 #
数据库采用Mysql 8.0. 前期可使用单主,后期可以采用多主多从方案。
二、 商家端 #
商家端主要实现商户资料管理、角色管理、吧台营业、订单查询统计、会员资料管理、等功能,它由两部分组成。
- 桌面应用、前台APP为桌面应用程序、或者网页应用程序。
- 后台服务、后台服务主要负责处理桌面应用的交互、同时提供客户端管理能力。
2.1 后台服务 #
- 缓存模块: 本地数据缓存采用Sqlite,为本地提供加速服务。
- 认证模块: 可以对接指纹设备、身份证读卡器设备。
- 查询统计:负责交接班、查询、统计等。
- 客户端管理: 负责维护客户端状态(灯光控制、空调控制等)。同时相应客户端请求(客户端操作响应:如果由交互的话)。
三、客户端 #
客户端为单片机、或者嵌入式设备。通过WebSocket 和客户端维持长期在线。随时响应客户端指令并上报自身状态。
灯光等设备可以采用继电器控制、空调采用红外遥控器指令的方式控制。
四、通信协议选择 #
由于需要实时数据更新, 商户端和服务器、服务器和网关 商户端和客户端统一采用WebSocket作为基础通信协议。
商户端和网关通信采用UDP协议。
五、开发测试方式 #
- 业务服务器节点可以将自身标记为测试服务器。
- 当商户标记是测试账户时,
网关
始终将其分配到测试服务器上。 - 当功能开发测试成熟稳定后,同步到其它服务器上并平滑重启。