早,很高兴认识非常努力的您!
项目简介
MoguBlog,一款基于微服务技术栈构建的前后端分离博客平台。前端界面采用Vue搭配ElementUI为Web端打造流畅体验,而移动端则利用uniapp结合ColorUI实现响应式设计。后端体系建立在SpringCloud、SpringBoot以及Mybatis-plus之上,确保了服务的高效与稳定。安全方面,Jwt与SpringSecurity联手打造了严密的登录认证与权限控制体系。搜索功能则依托ElasticSearch和Solr两大引擎,实现快速全文检索。代码的持续集成通过Github Actions自动执行,确保开发流程无缝衔接。日志管理则集成ElasticStack,实现系统日志的高效收集与分析。在文件存储策略上,MoguBlog灵活支持本地存储、七牛云及Minio,为用户提供了多样化的文件托管选择。
项目特点
友好的代码结构及注释,便于阅读及二次开发
实现前后端分离,通过 Json 进行数据交互,前端再也不用关注后端技术
页面交互使用 Vue2.x ,极大的提高了开发效率。
引入 Swagger 文档支持,方便编写 API 接口文档。
引入 RabbitMQ 消息队列,用于邮件发送、更新 Redis 和 Solr
引入 JustAuth 第三方登录开源库,支持 Gitee 、 Github 账号登录。
引入 ElasticSearch 和 Solr 作为全文检索服务,并支持可插拔配置
引入 Github Actions 工作流,完成蘑菇博客的持续集成、持续部署。
引入七牛云对象存储,同时支持本地文件存储
引入 RBAC 权限管理设计,灵活的权限控制,按钮级别的细粒度权限控制,满足绝大部分的权限需求
引入 Zipkin 链路追踪,聚合各业务系统调用延迟数据,可以一眼看出延迟高的服务
采用 自定义参数校验注解 ,轻松实现后端参数校验
采用 AOP + 自定义注解 + Redis 实现限制IP接口访问次数
采用自研的评论模块,实现评论邮件通知
采用 Nacos 作为服务发现和配置中心,轻松完成项目的配置的维护
采用 Sentinel 流量控制框架,通过配置再也不怕网站被爆破
采用uniapp 和ColorUi 完成蘑菇博客的移动端门户页面搭建
支持多种文本编辑器, Markdown 编辑器(Vditor)和富文本编辑器(CKEditor)随心切换
采用 ElasticStack 【 ElasticSearch + Beats + Kibana + Logstash 】
采用 Docker Compose 完成容器编排, Portainer 实现容器可视化,支持一键部署线上环境
技术选型
系统架构图
后台技术
SpringBootMVC框架
SpringCloud 微服务框架
SpringSecurity 认证和授权框架
MyBatis-Plus ORM框架
Swagger-UI 文档生产工具
Kibana 分析和可视化平台
Elasticsearch 搜索引擎
Beats 轻量型数据采集器
Logstash 用于接收Beats的数据并处理
Solr 搜索引擎
RabbitMQ 消息队列
Redis 分布式缓存
Docker 容器化部署
Druid 数据库连接池
七牛云 七牛云 - 对象储存
JWT JWT登录支持
SLF4J 日志框架
Lombok 简化对象封装工具
Nginx HTTP和反向代理web服务器
JustAuth 第三方登录的工具
Hutool Java工具包类库
阿里大于 短信发送平台
Github Actions 自动化部署
Zipkin 链路追踪
Flexmark-java Markdown转换Html
Ip2region 离线IP地址定位库
Minio 本地对象存储服务
Docker Compose Docker容器编排
PortainerDocker可视化管理
前端 技术
Vue.js前端框架
Vue-router 路由框架
Vuex 全局状态管理框架
Nuxt.js 创建服务端渲染 (SSR) 应用
Element 前端ui框架
Kibana 分析和可视化平台
Elasticsearch 搜索引擎
Beats 轻量型数据采集器
Logstash 用于接收Beats的数据并处理
Solr 搜索引擎
RabbitMQ 消息队列
Redis 分布式缓存
Docker 容器化部署
Druid 数据库连接池
七牛云 七牛云 - 对象储存
JWT JWT登录支持
SLF4J 日志框架
Lombok 简化对象封装工具
Nginx HTTP和反向代理web服务器
JustAuth 第三方登录的工具
Hutool Java工具包类库
阿里大于 短信发送平台
Github Actions 自动化部署
Zipkin 链路追踪
Flexmark-java Markdown转换Html
Ip2region 离线IP地址定位库
Minio 本地对象存储服务
Docker Compose Docker容器编排
PortainerDocker可视化管理
项目目录
MoguBlog 是一款基于最新技术开发的多人在线、简洁的博客系统。
mogu_admin: 提供admin端API接口服务;
mogu_web:提供web端API接口服务;
mogu_eureka:服务发现和注册【注: Nacos分支没有该目录,用Nacos作为服务发现组件】
mogu_picture:图片服务,用于图片上传和下载;
mogu_sms:消息服务,用于更新ElasticSearch、Solr索引、邮件和短信发送
mogu_monitor:监控服务,集成SpringBootAdmin用于管理和监控SpringBoot应用程序
mogu_spider:爬虫服务
(目前还未完善)
mogu_gateway:网关服务
(目前还未完善)
mogu_zipkin:链路追踪服务,
目前使用java -jar的方式启动
mogu_search:搜索服务,ElasticSearch和Solr作为全文检索工具, 支持可插拔配置 ,默认使用SQL搜索
mogu_commons:公共模块,主要用于存放Entity实体类、Feign远程调用接口、以及公共config配置
mogu_utils: 是常用工具类;
mogu_xo: 是存放 VO、Service,Dao层的
mogu_base: 是一些Base基类
doc: 是蘑菇博客的一些文档和数据库文件
vue_mogu_admin:VUE的后台管理页面
vue_mogu_web:VUE的门户网站
uniapp_mogu_web:基于uniapp 和 colorUi 的蘑菇博客移动端门户页面(Nacos分支)
nuxt_mogu_web:Nuxt的门户网站,主要用于支持SEO搜索引擎优化
产品截图
后台
WEB端
源代码下载地址
https://gitee.com/moxi159753/mogu_blog_v2.git
看到最后,如果这个项目对你有用,一定要给我点个「 在看和赞 」。