刚刚好的博客
本博客基于蘑菇博客,是一个基于微服务架构的前后端分离博客系统。Web 端使用 Vue + ElementUi , 移动端使用 uniapp 和 ColorUI。后端使用 SpringCloud + SpringBoot + Mybatis-plus进行开发,使用 Jwt + SpringSecurity 做登录验证和权限校验,使用 ElasticSearch 和 Solr 作为全文检索服务,使用 Github Actions完成博客的持续集成,使用 ElasticStack 收集博客日志,文件支持上传本地、七牛云 和 Minio.
本博客使用了一些监控的 SpringCloud 组件,但是并不一定都需要部署,必须启动的服务包含
本项目一个基于微服务架构的前后端分离博客系统。Web 端使用 Vue + ElementUi , 移动端使用 uniapp 和 ColorUI。后端使用 SpringCloud + SpringBoot + Mybatis-plus进行开发,使用 Jwt + SpringSecurity 做登录验证和权限校验,使用 ElasticSearch 和 Solr 作为全文检索服务,使用 Github Actions完成博客的持续集成,使用 ElasticStack 收集博客日志,文件支持上传本地、七牛云 和 Minio.
博客使用了一些监控的 SpringCloud 组件,但是并不一定都需要部署,必须启动的服务包含
nacos
,nginx
,rabbitmq
, redis
,mysql
,mogu-gateway
,mogu-sms
,mogu-picture
, mogu-web
, mogu-admin
其它的服务都可以不启动,也不影正常使用,可以根据自身服务器配置来启动
- 友好的代码结构及注释,便于阅读及二次开发
- 实现前后端分离,通过 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 实现容器可视化,支持一键部署线上环境
- 采用uniapp 和ColorUi 完成博客的移动端门户页面搭建
- 支持多种文本编辑器,Markdown 编辑器(Vditor)和富文本编辑器(CKEditor)随心切换
- 采用 ElasticStack【ElasticSearch + Beats + Kibana + Logstash】[搭建博客日志收集]
- 采用 Docker Compose 完成容器编排,Portainer 实现容器可视化,支持[一键部署线上环境]
目前项目托管在 Gitee 和 Github 平台上中,欢迎大家 Star 和 Fork 支持~
- Gitee地址:https://gitee.com/the_present/myblog
- Github地址:https://github.com/cresentboy/myblog
- 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_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搜索引擎优化
- nuxt_mogu_web:Nuxt的门户网站,主要用于支持SEO搜索引擎优化
(目前还未完善)
工具 | 说明 | 官网 |
---|---|---|
IDEA | Java开发IDE | https://www.jetbrains.com/idea/download |
WebStorm | 前端开发IDE | https://www.jetbrains.com/webstorm/ |
RedisDesktop | Redis可视化工具 | https://redisdesktop.com/download |
SwitchHosts | 本地Host管理 | https://oldj.github.io/SwitchHosts/ |
X-shell | Linux远程连接工具 | https://xshell.en.softonic.com/ |
X-ftp | Linux文件传输工具 | https://www.netsarang.com/zh/all-downloads/ |
SQLyog | 数据库连接工具 | https://sqlyog.en.softonic.com/ |
ScreenToGif | Gif录制工具 | https://www.screentogif.com/ |
工具 | 版本号 | 下载 |
---|---|---|
JDK | 1.8 | https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html |
Maven | 3.3.0+ | http://maven.apache.org/ |
Elasticsearch | 6.3.0 | https://www.elastic.co/downloads |
Solr | 7.0 | http://lucene.apache.org/solr/ |
MySQL | 5.6 | https://www.mysql.com/ |
Erlang | 20.3 | https://www.erlang.org/ |
RabbitMQ | 3.7.4 | http://www.rabbitmq.com/download.html |
Nginx | 1.10 | http://nginx.org/en/download.html |
Redis | 3.3.0 | https://redis.io/download |
Zipkin | 2.12.5 | https://search.maven.org/remote_content?g=io.zipkin.java&a=zipkin-server&v=LATEST&c=exec |
Nacos | 1.3.2 | https://github.com/alibaba/nacos/releases |
Sentinel | 1.7.2 | https://github.com/alibaba/Sentinel/releases |
Admin端 | |
---|---|
Web端 | |