Author:Gorit
Date:2022年5月29日

一、项目预览

点击查看【bilibili】

二、项目技术栈

2.1 项目介绍

cloud-myblog 是一款采用微服务架构设计的一款社交网站系统,以微博为原型,博客系统为参考,包含前台、后台管理系统。实现一个小型微博系统

2.2 项目技术栈

项目以微服务架构进行设计,使用前后端分离的技术,采用用到的技术栈如下

后端技术

技术 说明 官网
SpringBoot MVC Web框架 https://spring.io/projects/spring-boot
Spring Cloud Alibaba 2.2.3 微服务组件 https://spring.io/projects/spring-cloud-alibaba/
Spring Cloud Gateway 新一代服务网关 https://spring.io/projects/spring-cloud-gateway
MyBatis 半自动的 ORM 框架 https://mybatis.org/mybatis-3/zh/index.html
ElasticSearch 7.6.2 分布式搜索引擎 https://www.elastic.co/cn/
分布式存储系统 minio + 七牛云 minio 作为视频存储,七牛云作为图片存储平台
  1. Spring Cloud Alibaba 各种主流中间件整合
    • nacos 1.3.2 注册中心
    • nacos 分布式配置中心 参考链接
    • Sentinel 服务熔断,服务降级, 限流
    • Gateway 微服务网关
  2. SpringBoot 2.3.4
    • 集成 MyBatis 框架,实现 ORM
    • 集成 ElasticSearch 7.6.2,实现全文搜索功能
    • 集成 FastDFS,minio 实现分布式文件存储系统,服务采用 Docker 搭建在云服务器上
    • 集成 七牛云,完成图床上传
  3. Vue 3.0, Vue 2.6
    • 后台管理系统 Vue 2.6 + ElementUI + axios + NProgress(模拟进度条)+ vue-router(前端路由) + axios(发送网络请求)
    • 前台展示,预计会采用 Vue 3.0 + Vue 2.6 混合开发

2.3 项目模块

  1. cloud-myblog-common 通用模块层,通用依赖
  2. cloud-myblog-dao 数据处理层
  3. cloud-myblog-admin-8010 管理端 API
  4. cloud-myblog-auth-8005 认证授权相关 API
  5. cloud-myblog-user-8001 用户模块相关 API
  6. cloud-myblog-content-8002 内容模块相关 API
  7. cloud-myblog-resource-8003 资源模块相关 API
  8. cloud-myblog-search-8004 ES 搜索相关 API
  9. cloud-myblog-system-8006 系统模块相关 API
  10. cloud-myblog-gateway-80 网关 API + config
  11. cloud-myblog-frontend 前端模块
  12. cloud-myblog-utils 通用工具类
  13. cloud-myblog-model 实体层
  14. cloud-myblog-cms 后台管理系统前端页面
  15. doc 文档系列
  16. sql sql 脚本

2.4 具体业务模块介绍

2.4.1 cloud-myblog-admin-8010

提供后台管理系统所需的 API 接口

2.4.2 cloud-myblog-auth-8005

作为整个系统认证和授权 API 接口
| 客户端 | 认证中心 | 服务 |
|账号密码登录 ——>|认证服务 —>| 生成 token —>|
| 客户端接收 token -> |对服务资源请求 | 服务资源 —> 验证 token —> 合法则返回数据|

2.4.3 cloud-myblog-system-8006

提供系统管理相关的 API 接口

2.4.4 cloud-myblog-search-8004

ES 全局搜索引擎模块
整合 ELK 实现全文检索功能

2.4.5 cloud-myblog-resource-8003

资源模块,提供静态资源的上传,下载,访问。
资源类型

  • 图片类
  • 视频类

2.4.6 cloud-myblog-content-8002

提供内容模块所有所需的 API

  1. 文章管理 Blog
  2. 评论管理 Comment 和 CommentResponse
  3. 关于模块 About
  4. 点赞模块 Like,支持文章点赞 和 评论点赞,后期考虑增加 redis 缓存保证数据的一致性

2.4.7 cloud-myblog-user-8001

提供前台用户所需的 API 接口

  1. 前台用户模块 User
  2. 用户订阅与粉丝模块 Subscribe
  3. 后台管理员模块 Admin
  4. 用户收藏模块 Collection

三、更新日志

  • cloud-myblog-admin 模块,后台展示模块级版本构建完毕 2021年4月18日13:44:12
  • cloud-myblog-resource 模块开发完毕,完成了资源上传,下载,预览,删除 2021年4月16日00:19:19
  • cloud-myblog-system 模块基本开发完毕,日志系统预留给 gateway 最终来完成
  • cloud-mylog-content 模块开发完毕,还剩下用户信息的获取,整合前端之后在完善。 2021年4月10日16:47:49
  • 整合网关 和 用户模块服务,出现 BUG,两个模块之间不可以相互引用依赖,切入 cloud-myblog-user 分支,正式进入 用户模块的开发 2021年3月9日22:01:43
  • 更新用户模块,新增两个模块 cloud-myblog-model 2021年3月9日00:25:33
  • 项目环境基本搭建完毕,并且完成了 nacos 与 各个服务模块的集成工作 2021年3月7日23:35:33
  • 项目模块确认以及最终的搭建 2021年3月5日16:09:39

四、模块开发

  • master 主线分支
    • cloud-myblog-user-8001 用户管理【开发完毕】
    • cloud-myblog-content-8002 内容管理【开发完毕】
    • cloud-myblog-system-8006 系统管理【开发完毕】
    • cloud-myblog-resource-8003 资源模块,提供文件上传下载,预览,删除,交互等操作【开发完毕】
    • cloud-myblog-search-8004 ELK 全文检索功能【未实现,服务器不支持搭建 ES】
    • cloud-myblog-admin-8010 后台管理系统管理员模块【实现】
    • cloud-myblog-auth-8005 认证授权模块【时间完全不够,就没做】
    • cloud-myblog-search-8004 搜索模块开发,等前台页面开发完毕,之后最后 开发 ELK
  • cloud-myblog-cms (后台管理系统开发)开始开发
    • 采用 Vue2 + Ant Design Vue 实现
  • 前台开发
    • 适用 Vue3 + Ant Design Vue 实现

      五、项目地址

      并没有运行地址,1核2G 的服务器是跑不起来需要的微服务项目以及一些中间件

5.1 代码地址