早,很高興認識非常努力的您!
計畫簡介
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
看到最後,如果這個計畫對你有用,一定要給我點個「 在看和贊 」。