Skip to content

项目架构

概述

梦幻云平台采用微服务架构设计,前后端分离设计,高可用,高并发,分布式集群部署。

后端微服务

  • 权限服务
  • 系统服务
  • 代码生成服务
  • 开放平台服务
  • 机器人服务
  • 事件服务

前端站点

后端

架构

梦幻云平台后端采用微服务架构设计,基于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框架,组件开箱即用,原生支持自适应,界面清爽,提供主题定制,大幅提升开发效率。

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集群中的分布式并发执行。

持续集成

基于 MIT 许可发布