基于 Spring Cloud + Vue 3 的微服务博客系统
English · 中文
- 微服务架构 :用户服务、动态服务、消息服务、网关服务
- 认证授权 :JWT Token + Redis 实现单点登录
- 实时通信 :WebSocket + RabbitMQ 实现消息推送
- 数据库 :MySQL + Redis 缓存
- API 文档 :集成 Swagger/OpenAPI 3
模块 功能 用户 注册、登录、个人资料管理 好友 关注、粉丝、黑名单 动态 发布、点赞、评论、搜索 通知 实时推送、已读未读 管理后台 用户管理、动态管理、数据统计
- Vue 3 + Composition API
- Vite 构建工具
- Element Plus UI
- Pinia 状态管理
- 响应式布局
技术 说明 Java 17 编程语言 Spring Boot 3 基础框架 Spring Cloud Gateway API 网关 MyBatis-Plus ORM 框架 MySQL 主数据库 Redis 缓存、Session 存储 RabbitMQ 消息队列 JWT 身份认证
技术 说明 Vue 3 前端框架 Vite 构建工具 Element Plus UI 组件库 Pinia 状态管理 Axios HTTP 客户端 Vue Router 路由管理 dayjs 时间处理
Blog/
├── blog-frontend/ # 前端项目
│ ├── src/
│ │ ├── api/ # API 接口
│ │ ├── components/ # 公共组件
│ │ ├── router/ # 路由配置
│ │ ├── store/ # 状态管理
│ │ ├── utils/ # 工具函数
│ │ └── views/ # 页面组件
│ └── vite.config.js
│
└── demo/ # 后端项目
├── blog-common/ # 公共模块
│ ├── entity/ # 实体类
│ ├── dto/ # 数据传输对象
│ ├── exception/ # 异常处理
│ └── utils/ # 工具类
│
├── blog-gateway/ # 网关服务 (8080)
├── blog-user/ # 用户服务 (8081)
├── blog-post/ # 动态服务 (8082)
└── blog-message/ # 消息服务 (8083)
- JDK 17+
- Node.js 16+
- MySQL 8.0+
- Redis 6.0+
- RabbitMQ 3.x
cd demo
# 编译
mvn clean package -DskipTests
# 启动服务(按顺序)
java -jar blog-gateway/target/blog-gateway.jar
java -jar blog-user/target/blog-user.jar
java -jar blog-post/target/blog-post.jar
java -jar blog-message/target/blog-message.jar
cd blog-frontend
# 安装依赖
npm install
# 启动开发服务器
npm run dev
服务 地址 前端首页 http://localhost:5173 API 网关 http://localhost:8080 Swagger 文档 http://localhost:8080/swagger-ui.html
POST /api/auth/login # 用户登录
POST /api/auth/register # 用户注册
GET /api/post/list # 获取动态列表
POST /api/post # 发布动态
DELETE /api/post/{id} # 删除动态
POST /api/post/{id}/like # 点赞
POST /api/post/{id}/comment # 评论
GET /api/friend/list # 好友列表
POST /api/friend/request # 发送好友请求
PUT /api/friend/accept/{id} # 接受请求
PUT /api/friend/reject/{id} # 拒绝请求
GET /api/notification/list # 通知列表
PUT /api/notification/read # 标记已读
WS /ws/notification # WebSocket
-- 创建数据库
CREATE DATABASE blog DEFAULT CHARACTER SET utf8mb4;
-- 初始化表结构(运行 sql/init.sql)
# 确保 Redis 服务运行在 localhost:6379
# 后端
export MYSQL_HOST=localhost
export MYSQL_PORT=3307
export REDIS_HOST=localhost
# 前端
VITE_API_BASE_URL=http://localhost:8080
项目已实现以下优化方案:
- ✅ 数据库索引优化(复合索引)
- ✅ MySQL 全文索引搜索
- ✅ HikariCP 连接池调优
- ✅ Redis 缓存优化
本项目基于 MIT License 开源。
programeGreenhand
- GitHub: @programeGreenhand ⭐ 如果这个项目对你有帮助,请点个 Star!