一、项目预览
二、项目技术栈
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 作为视频存储,七牛云作为图片存储平台 |
- Spring Cloud Alibaba 各种主流中间件整合
- nacos 1.3.2 注册中心
- nacos 分布式配置中心 参考链接
- Sentinel 服务熔断,服务降级, 限流
- Gateway 微服务网关
- …
- SpringBoot 2.3.4
- 集成 MyBatis 框架,实现 ORM
- 集成 ElasticSearch 7.6.2,实现全文搜索功能
- 集成 FastDFS,minio 实现分布式文件存储系统,服务采用 Docker 搭建在云服务器上
- 集成 七牛云,完成图床上传
- Vue 3.0, Vue 2.6
- 后台管理系统 Vue 2.6 + ElementUI + axios + NProgress(模拟进度条)+ vue-router(前端路由) + axios(发送网络请求)
- 前台展示,预计会采用 Vue 3.0 + Vue 2.6 混合开发
2.3 项目模块
- cloud-myblog-common 通用模块层,通用依赖
- cloud-myblog-dao 数据处理层
- cloud-myblog-admin-8010 管理端 API
- cloud-myblog-auth-8005 认证授权相关 API
- cloud-myblog-user-8001 用户模块相关 API
- cloud-myblog-content-8002 内容模块相关 API
- cloud-myblog-resource-8003 资源模块相关 API
- cloud-myblog-search-8004 ES 搜索相关 API
- cloud-myblog-system-8006 系统模块相关 API
- cloud-myblog-gateway-80 网关 API + config
- cloud-myblog-frontend 前端模块
- cloud-myblog-utils 通用工具类
- cloud-myblog-model 实体层
- cloud-myblog-cms 后台管理系统前端页面
- doc 文档系列
- 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
- 文章管理 Blog
- 评论管理 Comment 和 CommentResponse
- 关于模块 About
- 点赞模块 Like,支持文章点赞 和 评论点赞,后期考虑增加 redis 缓存保证数据的一致性
2.4.7 cloud-myblog-user-8001
提供前台用户所需的 API 接口
- 前台用户模块 User
- 用户订阅与粉丝模块 Subscribe
- 后台管理员模块 Admin
- 用户收藏模块 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 实现
- 前台开发