项目架构
概述
梦幻云平台采用微服务架构设计,前后端分离设计,高可用,高并发,分布式集群部署。
后端微服务
- 权限服务
- 系统服务
- 代码生成服务
- 开放平台服务
- 机器人服务
- 事件服务
前端站点
后端
架构
梦幻云平台后端采用微服务架构设计,基于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 控制器 部署了各类系统应用
业务微服务
利用 Kubernetes
Deployment 控制器 部署了各类业务微服务
代码托管
采用Gitblit
作为代码托管服务,拥有轻量用户权限管理系统,简单易用。
持续集成
采用Jenkins
作为DevOps持续集成服务,安装了Git、Kubernetes、Pipeline、SSH Credentials等插件,通过编写Pipeline脚本,实现了微服务组件的自动化部署。通过jenkins-slave容器实现了多任务在Kubernetes集群中的分布式并发执行。