笔者在之前做过一个采集学生手环数据的项目,有点物联网项目的味道,业务需求就是采集学生手环的数据,完成打卡考勤,学生位置定位,学生健康数据采集,行为数据分析等。
在项目初始阶段,只有一个学校在用,为了使得项目快速上线,只做了最简单的设计,就是每个学校本地部署一台服务器,使用netty接收学校手环传来的tcp数据,然后根据自定义的网络协议去解析成json,
{
"studentId":"12345", "deviceId":"abc", "time":"2020-09-27 17:35:52"}
发送给下游各类应用,架构图如下:
随着业务发展,越来越多的学校都要使用手环,所以为了避免每开一个新的学校,都要交付去学习本地开一台服务器,造成资源浪费以及增加人工维护成本,首先想把后台数据分发改造成saas多租户服务,即所有的学校都是用的同一套服务,这样有以下优点
业务上避免每次新开一所