Skip to main content
Version: 中文

架构概述

概述

IceCMS 是一个现代化的内容管理系统,采用微服务启发式架构构建,旨在为内容发布、资源共享和社区互动提供一个强大的平台。本文档全面概述了 IceCMS 的架构、组件及其交互方式。

架构设计

IceCMS 遵循三层架构模式,明确区分以下层次:

  1. 表示层:负责用户界面和交互。
  2. 业务逻辑层:处理核心业务逻辑。
  3. 数据层:管理数据存储和访问。

容器化与部署

系统使用 Docker 进行容器化,便于各组件的部署和扩展。

  • 参考文件:docker-compose.ymlpom.xml

后端架构

IceCMS 的后端基于 Spring Boot (v2.3.5) 构建,采用模块化方法,清晰分离关注点:

后端组织为两个主要模块:

  1. IceCMS-main:包含主应用程序入口的核心应用模块。 IceCMS-ment:包含大部分业务逻辑、控制器、服务和数据访问组件 关键组件

控制器:处理HTTP请求和响应,分为两类:

后端控制器:面向管理员的内容管理API 前端控制器:面向用户的内容消费API 服务:实现文章、资源和用户管理等领域的业务逻辑

映射器:使用MyBatis Plus ORM框架与数据库接口

实体:表示数据库表和业务对象的Java POJO

安全:使用Shiro框架和JWT进行认证和授权

参考资料:IceCMS-ment结构,ShiroConfig.java

前端架构

IceCMS提供两个独立的前端应用:

管理前端 (Vue.js)

管理面板使用Vue.js和Element Plus构建,遵循现代组件化架构:

管理前端的主要功能包括:

基于角色的访问控制 内容管理界面 用户管理 系统设置 资源管理 参考资料:IceCMS-front-admin结构

用户前端 (Nuxt3)

用户界面网站使用Nuxt3构建,提供服务器端渲染功能,以优化SEO和性能:

用户前端提供的界面包括:

内容浏览和消费 用户认证 评论和互动 资源下载 社区功能 参考资料:IceCMS-front-nuxt3结构

数据层

数据库架构

系统使用MySQL作为主要数据库,包含以下表:

用户和认证 文章和内容 资源和文件 评论和互动 系统设置 标签和分类 外部存储

大文件和媒体存储在腾讯云对象存储(COS)中,通过后端服务集成。

参考资料:TencentCOS.java

部署架构

IceCMS使用Docker进行容器化,包含三个主要容器:

icecms-api:包含Spring Boot后端应用 icecms-sql:运行MySQL数据库 icecms-vue:通过Nginx提供前端应用 这种容器化方法便于部署和扩展,并确保组件之间的清晰隔离。

参考资料:docker-compose.yml

集成点

系统与多个外部服务集成:

邮件服务:用于通知和用户通信 腾讯云服务: 云对象存储(COS)用于文件存储 短信服务用于通知 微信:用于认证和社交功能 参考资料:MailUtils.java,TencentCloudSMSUtils.java,WeChatUtils.java

通信流程

系统中的典型请求流程:

用户与前端(Vue或Nuxt3)交互 前端向后端发起API调用 后端控制器接收请求 通过Shiro/JWT进行认证/授权 控制器委托给相应的服务 服务执行业务逻辑 服务使用映射器与数据库交互 响应通过链路返回给用户 总结

IceCMS采用现代化、模块化架构,明确区分前端、后端和数据层。容器化部署方法使其易于设置和扩展。系统设计允许:

通过独立的前端应用区分管理员和用户关注点 后端模块化,服务边界清晰 灵活的数据存储,结合关系数据库和云对象存储 安全的认证和授权 这一架构为新功能扩展提供了坚实基础,同时保持了可维护性和性能。

Was this helpful?