main
HuangHai 3 months ago
parent 45bb5f48d5
commit aac61eb9c1

@ -1,17 +1,41 @@
### 一、整体架构
整体架构分为三部分:数据库类、文件存储类、$WEB$程序类(前端与后端、小程序、公众号等统称)
### 二、数据库类
指$Postgresql$,$Redis$等用于数据库和缓存的应用程序
指$Postgresql$,$Redis$等用于数据库和缓存的应用程序,不使用$Docker$部署,不使用$K8S$部署,因为网上有说法称数据库用于虚拟化部署会降低性能,不建议,这里也就单独采用一台(或多台)数据库服务器进行独立部署。
本地部署:
采用$Docker$容器化部署,方便本地调试,方便云端部署。
云端部署:华为云的云数据库 PostgreSQL
https://www.huaweicloud.com/product/pg.html
数据库引擎和版本
https://support.huaweicloud.com/productdesc-rds-pg/zh-cn_topic_0043898356.html
### 三、文件存储类
本地部署:采用支持$S3$协议的$Mino$来处理
云端部署:华为云的云对象存储 OBS
系统原生支持集群部署,高并发,所以,文件存储不能使用简单的$NFS$、共享磁盘等技术,要求采用支持$S3$协议的$Mino$来处理,这样,一旦未来有机会接入华为云、阿里云等支持$S3$协议的云端服务,不用修改代码 ,同时,$Minio$可以保证无论是集群中哪台主机上传的文件,都是可以互相访问的。
### 四、$WEB$程序类
采用$K8S$来部署,可以无限横向扩容,不停机更新代码,弹性扩容、版本管理、版本回滚等一系列优点。
本地部署:采用$K8S$来部署,可以无限横向扩容,不停机更新代码,弹性扩容、版本管理、版本回滚等一系列优点。
云端部署:华为云的云容器引擎 CCE
https://www.huaweicloud.com/product/cce.html
### 五、微服务技术选型
哲学:可控+极简
关键词JFinal+Postgresql+Redis+K8S(CCE)+Mino(Obs)
1、JFinal框架
JFinal是一个轻量级Java Web框架它使用MVC设计思想并使用Maven进行依赖管理使用JDK21进行开发
使用Postgresql作为数据库使用Redis作为缓存使用K8S(CCE)作为容器引擎使用Mino(Obs)作为文件存储引擎。
选择理由代码极简占用内存少依赖少完全可控。反观SpringCloud, 结构复杂,资源占用大,依赖多,维护麻烦。
苏州项目之所以无法各地完成部署很大程度是因为庞大的机器数量需求动辄30余台的服务器普通用户无法承受。
本系统中网关自行实现代码极简完全可控在AI时代写完的代码让AI帮助检查代码逻辑错误和潜在风险不存在无法大规模部署的问题。
2、Postgresql数据库
Postgresql是一个开源的关系数据库使用Postgresql作为数据库相对于Mysql, Postgresql更加稳定更加安全更加可靠。
Postgresql支持事务支持ACID支持分布式事务支持主从复制支持读写分离支持水平扩展支持垂直扩展支持备份恢复支持恢复点支持快照支持快照恢复支持快照复制支持快照复制恢复支持快照复制恢复点支持快照复制恢复点恢复支持快照复制恢复点恢复点支持快照复制恢复点恢复点恢复支持快照复制恢复点恢复点恢复点恢复支持快照复制恢复点恢复点恢复点恢复点恢复支持快照复制恢复点恢复点恢复点恢复点恢复点恢复支持快照复制
https://www.postgresql.org/docs/current/index.html
Loading…
Cancel
Save