---
title: 个人博客系统
date: 2026-06-08
---
# 一、项目背景
为满足个人技术积累与内容分享需求,独立开发了一套多端博客系统,支持博客管理、发布与多端阅读。
系统包含博客网站、博客管理后台与移动端 App,覆盖 Web 端与移动端用户场景,实现了从内容创作、存储、检索到多端展示的完整闭环。
# 二、系统架构
# 三、核心模块
## 3.1 博客网站
1. 首页博客列表展示(分页、置顶)
2. 博客分类与标签筛选
3. 博客归档(按时间维度)
4. 博客全文搜索(Elasticsearch)
5. Markdown 文章渲染与代码高亮
6. 博客阅读时长和阅读人数统计
7. 评论发布与互动(匿名)
## 3.2 博客管理后台
1. 博客新增、编辑、删除(权限控制)
2. Markdown 编辑器(md-editor-v3)
3. 博客图片上传(RustFS)
4. 分类 / 标签管理
5. 博客状态管理(草稿 / 发布)
6. 博客访问数据查看
7. 统计数据仪表盘(ECharts)
## 3.3 移动端APP
1. 博客列表与详情浏览
2. Markdown 内容原生渲染(markdown_widget)
3. 分类、归档、搜索功能
4. 移动端自适应布局
# 四、技术栈
| 层级 | 技术 |
|---|---|
| **前端** | Vue 3、Element Plus、Vue Router、Pinia、md-editor-v3、Axios |
| **后端** | FastAPI、Pydantic、SQLAlchemy、Uvicorn |
| **移动端** | Flutter、markdown_widget、provider、dio |
| **中间件** | Elasticsearch(全文检索、分词索引) |
| **存储** | MySQL 8.0(业务数据)、RustFS(图片存储) |
| **运维** | Docker、Nginx、Fluent Bit (日志采集)、OpenObserver (日志可视化) |
# 五、核心设计
- 基于 FastAPI 构建高性能后端 API,采用分层结构设计,保证业务逻辑清晰、接口响应高效。
- 博客内容统一采用 Markdown 格式,Web 端与移动端分别基于 md-editor-v3与 markdown_widget实现一致的内容渲染效果。
- 使用 Elasticsearch 构建博客全文检索引擎,支持标题、内容、标签多维搜索,显著提升内容查找效率。
- 图片资源统一上传至 RustFS 对象存储,通过 URL 访问,降低应用服务器存储压力,提升静态资源加载速度。
- 管理后台与博客前端共享同一后端服务,通过接口级权限控制,实现“管理操作需鉴权、公开访问无需登录”的安全设计。
- Web 端采用 Vue 3 + Pinia 实现状态管理与组件化开发;移动端基于 Flutter 实现跨平台一致体验。
# 六、难点 / 亮点
## 6.1 博客搜索性能优化
- **问题**:随着博客数量增长,MySQL LIKE 查询性能下降明显。
- **方案**:引入 Elasticsearch,构建博客索引,支持中文分词与多字段检索。
## 6.2 图片存储与访问优化
- **问题**:本地存储图片不利于扩展,且增加服务器带宽压力。
- **方案**:集成 RustFS 对象存储,所有博客图片统一上传并返回访问 URL。