蘑菇博客,一个基于微服务架构的前后端分离博客系统
项目介绍 | 站点演示 | 项目特点 | 技术架构 | 项目目录 | 项目文档 | 快速开始 | 视频教程| 项目截图 | 更新记录 | 笔记仓库
陌溪 是一个从三本院校一路摸滚翻爬上来的程序员。目前就职于字节跳动的Data商业化广告部门,是字节跳动全线产品的商业变现研发团队。这两天创建了一个 微信公众号【陌溪教你学编程】,未来将会在公众号上持续性的输出很多原创小知识以及学习资源,欢迎各位小伙伴关注我,和我一起共同学习,同时我也希望各位小伙伴能够给蘑菇博客项目多多 Star 支持,您的点赞就是我维护的动力!
项目已有较详细的 项目搭建文档 ,同时包括了 Windows、Linux 以及 Docker 环境下蘑菇博客的搭建。在使用过程中遇到问题时,首先认真阅读项目搭建文档 ,同时 FAQ文档 还收集了小伙伴咨询的问题,可以提前阅读~
【提问前】可以先 百度 或者 Google 进行解决,有的问题通过搜索引擎很快就能得到解决
【提问前】可以首先看看 issue 或者 FAQ文档,可能你的问题别人也遇到过
【提问前】可以提前阅读 如何向开源社区提问题
【提问】推荐使用 Gitee issue 进行提问,因为issue解决后能够保留解决记录,帮助其它小伙伴避坑。其次可以使用 QQ群 或者 微信群 进行提问。群里提问注意提问的时间,把遇到问题的详细过程都描述清楚,最好配上图文信息,这样能有利于更高效的解决问题。
目前字节跳动拥有大量岗位需求,欢迎点击下方内推链接【内推码: WYU3X8M】选择合适的岗位投递。小伙伴们使用内推链接投递后,可以通过 公众号 联系我跟进面试进度。
项目后台目前有 Eureka 版本和 Nacos 版本,其中 Eureka 版本使用的是 SpringCloud 一些组件,Nacos 版本使用的是 SpringCloudAlibaba 的一些组件,例如 Nacos、Sentinel 等
蘑菇博客( MoguBlog ),一个基于微服务架构的前后端分离博客系统。Web 端使用 Vue + ElementUi , 移动端使用 uniapp 和 ColorUI。后端使用 SpringCloud + SpringBoot + Mybatis-plus进行开发,使用 Jwt + SpringSecurity 做登录验证和权限校验,使用 ElasticSearch 和 Solr 作为全文检索服务,使用 Github Actions完成博客的持续集成,使用 ElasticStack 收集博客日志,文件支持上传本地、七牛云 和 Minio.
mogu-go-v2 是根据蘑菇博客改编的一个 Golang 简化版分支,实现了蘑菇博客后台原有的大部分基础功能,同时前端代码和数据库基本没有变化,因此可以直接使用蘑菇博客原有的前端页面。
mogu-go-v2 目前采用的技术有:beego、gorm、mysql、redis 和 nginx。相比于蘑菇博客微服务版,Golang版蘑菇能够做到 1C2G 的服务器轻松运行,再也不怕网站第二天起来就宕机了~。
参考蘑菇博客Golang版安装指南,快速在 Windows 平台搭建蘑菇博客Go版开发环境
首先特别感谢群里小伙伴 @泪梦红尘 对蘑菇博客提供服务器支持。所以就刚好以此用来做蘑菇博客的演示站点,同时我也在搭建的时候,顺便录制了一套视频:20分钟部署一个微服务架构的博客系统 ,感兴趣的小伙伴可以参考视频一起完成部署~
【演示前端】:http://demoweb.moguit.cn/
【演示后端】:http://demoadmin.moguit.cn/
【演示账号】:点击获取
【小程序】蘑菇博客的移动端版本,可以扫码体验。参考 蘑菇博客小程序部署 文档,以及Bilibili上 20分钟部署博客小程序视频 完成小程序的搭建。
蘑菇博客使用了一些监控的 SpringCloud 组件,但是并不一定都需要部署,必须启动的服务包含
nacos
,nginx
,rabbitmq
, redis
,mysql
,mogu-gateway
,mogu-sms
,mogu-picture
, mogu-web
, mogu-admin
其它的服务都可以不启动,也不影正常使用,可以根据自身服务器配置来启动
最低配置:1核2G 【需开启虚拟内存】【容易宕机】
推荐配置:2核4G 【年中特惠】
【阿里云】云服务器年中特惠,1核2G 5M轻量级应用服务器114元/年【博主使用】 点我传送
【腾讯云】云产品限时秒杀,爆款1核2G云服务器,首年99元(老用户重新用微信QQ注册即可) 点我进入
文档地址:http://moxi159753.gitee.io/mogu_blog_doc
备用文档地址:http://doc.moguit.cn
目前项目托管在 Gitee 和 Github 平台上中,欢迎大家 Star 和 Fork 支持~
(目前还未完善)
(目前还未完善)
目前使用java -jar的方式启动
(目前还未完善)
蘑菇博客系统架构图,使用 Processon 在线绘制
参考 如何使用一条命令完成蘑菇博客部署, 在云服务器上执行下面命令,完成一键部署蘑菇博客
wget https://mogublog-v2.oss-cn-guangzhou.aliyuncs.com/software/moguInit.sh && chmod +x moguInit.sh && sh moguInit.sh
Bilibili一键部署视频:20分钟部署一个微服务架构的博客系统
参考 Windows+VMware一键搭建蘑菇博客本地开发环境,快速在 Windows 平台搭建蘑菇博客开发环境,将中间件安装在 VMware 中。
参考 window环境下配置蘑菇博客环境,能够在 Windows下搭建蘑菇博客的开发环境,同时将所有组件安装在Windows 环境中
参考 DockerCompose一键部署蘑菇博客(Nacos版) ,在 Linux 服务器中,一键完成蘑菇博客项目的部署
参考 使用Docker快速搭建蘑菇博客(Eureka分支),快速在Linux服务器中搭建好博客运行环境,通过发布 Jar 包的方式完成部署
参考 使用Docker快速搭建蘑菇博客(Nacos分支),快速在Linux服务器中搭建好博客运行环境,通过发布 Jar 包的方式完成部署
【推荐】参考IDEA发布蘑菇博客Docker镜像到云服务器(适用于DockerCompose部署),在你修改Nacos分支博客源码后,将重新制作镜像部署到云服务器,然后通过DockerCompose进行启动。
参考蘑菇博客如何部署到阿里云服务器(Eureka分支),在你修改Eureka分支博客源码后将项目打包部署到云服务器
参考蘑菇博客如何部署到阿里云服务器(Nacos分支),在你修改Nacos分支博客源码后将项目打包部署到云服务器
参考 使用Github Action完成蘑菇博客持续集成 ,在你提交一个 push 请求后,通过 Github Actions 能够完成蘑菇博客自动化 编译、打包、部署等操作。
参考蘑菇博客切换搜索模式,完成蘑菇博客的搜索引擎切换,目前支持 Solr、ElasticSearch、SQL 的方式
参考蘑菇博客切换七牛云存储,配置文件的七牛云对象存储,及本地文件存储
参考使用Zipkin搭建蘑菇博客链路追踪,通过聚合各业务系统调用延迟数据,达到链路调用监控跟踪,快速定位其中延迟高的服务
参考蘑菇博客Nacos部署指南,搭建蘑菇博客的服务注册和配置中心
参考蘑菇博客Sentinel安装指南,Sentinel 被称为分布式系统的流量防卫兵,相当于Hystrix
参考蘑菇博客QQ小程序发布指南,完成蘑菇博客 uniapp 移动端的启动和发布
参考蘑菇博客微信小程序部署指南,完成蘑菇博客 uniapp 移动端的启动和发布
参考蘑菇博客如何扩展新的功能和页面,在蘑菇博客现有架构基础上,开发自己需要的页面。
参考搭建蘑菇博客日志收集,使用 Docker 快速搭建 ELK 环境用于蘑菇博客日志收集
工具 | 说明 | 官网 |
---|---|---|
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 |
蘑菇博客起初参考了很多开源项目的解决方案,开源不易,感谢分享
感谢 jetbrains 提供的开源License
感谢杨青小姐姐的博客模板:http://www.yangqq.com/
感谢PanJiaChen的Vue后台管理模板:vue-element-admin
Vue项目搭建参考这篇博客:https://segmentfault.com/a/1190000009506097
感谢苞米豆提供的 Mybatis-plus框架:http://mp.baomidou.com/
感谢yadong.zhang提供的第三方登录开源库:https://gitee.com/yadong.zhang/JustAuth
感谢 bihell 的 Dice 博客项目:https://github.com/bihell/Dice
感谢 pppercyWang 提供的Emoji表情评论组件:vue-emoji-comment
感谢 若依 提供的 RuoYi 项目:https://gitee.com/y_project/RuoYi
感谢 yaowei9363 提供的 Vue侧目录组件: vue-side-catalog
感谢 奇文社区 提供的 奇文网盘 项目:https://gitee.com/qiwen-cloud/qiwen-file
感谢 weilanwl 提供的 ColorUI:https://github.com/weilanwl/ColorUI
为了方便小伙伴们沟通交流,我创建了QQ群 (加群备注:蘑菇博客
) 和 微信群(备注:加群),目前项目还存在很多不足之处,欢迎各位老哥进群进行技术交流,为了防止广告进入,希望加群的时候能添加备注,谢谢~
微信群【备注:加群】 | 蘑菇博客 )【群满】 |
QQ群(备注:蘑菇博客 )【推荐】 |
---|---|---|
开源项目离不开大家的支持,如果您有好的想法,遇到一些 BUG 并修复了,以及 蘑菇博客文档 上有错误的地方订正过来了,欢迎小伙伴们提交 Pull Request 参与开源贡献
服务器和域名等服务的购买和续费都会产生一定的费用,为了维持项目的正常运作,如果觉得本项目对您有帮助的话,欢迎朋友能够给予一些支持,陌溪将用于提升服务器配置,感谢小伙伴们的支持( ps: 小伙伴赞赏的时候可以备注一下下~)
微信 | 支付宝 |
---|---|
目前移动端版本的代码已经开源至Nacos分支,如果想体验的小伙伴可以移动至Nacos分支
Admin端 | |
---|---|
Web端 | |
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。