当前位置: 欣欣网 > 码农

7.6K star! 推荐一款基于微服务架构的前后端分离博客系统

2024-06-23码农

早,很高兴认识非常努力的您!

项目简介

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

    看到最后,如果这个项目对你有用,一定要给我点个「 在看和赞 」。