蘑菇博客( MoguBlog ),一个基于微服务架构的前后端分离博客系统。Web 端使用 Vue + ElementUi , 移动端使用 uniapp 和 ColorUI。
后端使用 springCloud + springboot + Mybatis-plus进行开发,使用 Jwt + SpringSecurity 做登录验证和权限校验,使用 ElasticSearch 和 Solr 作为全文检索服务,使用 Github Actions完成博客的持续集成,使用 ElasticStack 收集博客日志,文件支持上传本地、七牛云 和 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 实现容器可视化,支持一键部署线上环境