项目架构
概述
梦幻云平台采用微服务架构设计,前后端分离设计,高可用,高并发,分布式集群部署。
后端微服务
- 权限服务
- 系统服务
- 代码生成服务
- 开放平台服务
- 机器人服务
- 事件服务
前端站点
后端
架构
梦幻云平台后端采用微服务架构设计,基于Spring Cloud Alibaba微服务套件开发。

网关
采用Spring Gateway作为微服务网关组件,提供统一的流量入口、流量控制、权限认证、Swagger聚合接口文档。

配置中心
采用Nacos作为微服务配置中心,提供统一的配置界面、配置接口、配置热更新。

服务发现
采用Nacos作为微服务服务发现组件,提供统一的服务监控页面,服务注册接口,服务发现接口。

RPC
采用Open Feign作为微服务RPC组件,提供统一简洁的RPC方法定义方式,通过Nacos的服务发现功能自动实现负载均衡,大大提高微服务交互开发效率。
分布式事务
采用Seata作为微服务分布式事务组件,解决微服务跨服事务的痛点。

流量控制
采用Sentinel作为微服务流量控制组件,将Nacos作为其数据源,为微服务提供流量控制,熔断降级,系统负载保护。

消息队列
采用RocketMQ作为微服务分布式消息组件,实现异步处理,项目解耦,流量消峰,数据分发,数据补偿。
安全组件
采用Spring Security + Spring Authorization Server作为微服务安全组件,提供了灵活的权限认证方式,权限控制逻辑。

调度中心
采用Xxljob作为微服务调度中心组件,提供了统一简洁的任务配置页面,调度系统与业务逻辑完全解耦,结合微服务可集群部署的特性可实现任务调度业务服务的负载均衡。

对象存储
采用Minio作为微服务分布式对象存储组件,提供了强大的文件管理系统,可私有化部署,安全性有保障。

数据库
采用MySql作为微服务数据存储组件,进行了读写分离设计,数据索引优化,通过雪花算法生成ID,确保分布式系统ID唯一性,提升索引性能。项目集成MyBatisPlus组件,可更便携高效的操作数据库。
缓存
采用Redis作为微服务缓存组件,提供了集群部署,其哨兵模式为集群高可用提供了保障。项目集成了Redission组件,可更便携的创建分布式锁。
前端
JS 框架
采用Vue3作为前端JS框架,采Mvvm设计模式,提供了组合式Api,可更便携的进行页面编写,代码组织,采用渐进式设计模式,各个模块独立专一,可灵活组合。
状态管理
采用Pinia作为Vue状态管理组件,提供跨页面共享状态功能,使得页面间数据交互更加便携高效
路由管理
采用VueRouter作为Vue路由管理组件,提供了灵活的路由组织方式,可更便携的进行权限控制
异步请求
采用Axios作为前端HTTP访问库,采用Promise,可更便携的进行异步编程。
构建工具
采用Vite作为前端构建工具,提供了丰富的插件Api,扩展性极高,内置开发服务器,丰富的内建功能,支持HMR模块热更新,大幅提升开发效率。使用Rollup打包代码,可输出高度优化的静态资源。
JS增强
采用Type Script替代前端JS语法,强类型编程,更加规范。
UI 框架
采用Element Plus作为前端UI框架,组件开箱即用,原生支持自适应,界面清爽,提供主题定制,大幅提升开发效率。

CSS 框架
采用TailwindCSS作为前端CSS框架,使用预置样式类,可更便携的编写页面样式。
CSS 增强
采用Sass作为前端CSS扩展语言,支持声明变量,CSS代码预处理,大幅提升代码复用性。
运维
系统
采用CentOS作为Linux服务器系统,轻量,安全,可靠
容器
采用Docker作为应用容器引擎,轻量,安全,标准化,应用资源相互隔离
容器编排
采用Kubernetes作为容器编排工具,可实现应用自动化部署,应用容器化管理,硬件资源合理分配。安装了NFS服务,通过nfs-provisioner创建了StorageClass资源,从而实现容器数据统一存储。安装了Ingress服务,通过创建Ingress资源从而实现外部用户对集群资源的访问。安装了metrics-server和dashboard,从而实现对集群的监控和管理。

系统应用
利用 Kubernetes Statefulset 控制器 部署了各类系统应用

业务微服务
利用 KubernetesDeployment 控制器 部署了各类业务微服务

代码托管
采用Gitblit作为代码托管服务,拥有轻量用户权限管理系统,简单易用。

持续集成
采用Jenkins作为DevOps持续集成服务,安装了Git、Kubernetes、Pipeline、SSH Credentials等插件,通过编写Pipeline脚本,实现了微服务组件的自动化部署。通过jenkins-slave容器实现了多任务在Kubernetes集群中的分布式并发执行。
