### 一、整体架构 整体架构分为三部分:数据库类、文件存储类、$WEB$程序类(前端与后端、小程序、公众号等统称) ### 二、数据库类 指$Mysql$,$Redis$等用于数据库和缓存的应用程序 本地部署: 采用$Docker$容器化部署,方便本地调试,方便云端部署。 云端部署:华为云的云数据库 Mysql https://www.huaweicloud.com/product/pg.html ### 三、文件存储类 本地部署:采用支持$S3$协议的$Mino$来处理 云端部署:华为云的云对象存储 OBS ### 四、$WEB$程序类 本地部署:采用$K8S$来部署,可以无限横向扩容,不停机更新代码,弹性扩容、版本管理、版本回滚等一系列优点。 云端部署:华为云的云容器引擎 CCE https://www.huaweicloud.com/product/cce.html ### 五、微服务技术选型 哲学:可控+极简 关键词:JFinal+Mysql+Redis+K8S(CCE)+Mino(Obs) JFinal框架 JFinal是一个轻量级Java Web框架,它使用MVC设计思想,并使用Maven进行依赖管理,使用JDK21进行开发, 使用Mysql作为数据库,使用Redis作为缓存,使用K8S(CCE)作为容器引擎,使用Mino(Obs)作为文件存储引擎。 选择理由:代码极简,占用内存少,依赖少,完全可控。反观SpringCloud, 结构复杂,资源占用大,依赖多,维护麻烦。 苏州项目之所以无法各地完成部署,很大程度是因为庞大的机器数量需求,动辄30余台的服务器,普通用户无法承受。 本系统中,网关自行实现,代码极简,完全可控,在AI时代,写完的代码让AI帮助检查代码逻辑错误和潜在风险,不存在无法大规模部署的问题。