當前位置: 妍妍網 > 碼農

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

    看到最後,如果這個計畫對你有用,一定要給我點個「 在看和贊 」。