高校学习生活社区平台 / 微服务后端
Campus Learning & Life Community Platform · Microservices Backend
一个面向高校学生的学习生活社区平台后端系统,采用微服务架构设计,提供信息流、资源分享、活动管理、社交互动、即时通讯等核心功能。
Evolved-MS 是一个专为高校学生设计的学习生活社区平台后端系统。平台旨在打造一个集学习资源分享、校园活动发布、社交互动、实时通讯于一体的综合性社区平台,帮助学生更好地融入校园生活、获取学习资源、参与校园活动。
| 特性 | 描述 |
|---|---|
| 🔐 用户系统 | 支持短信登录、账号密码登录、高校认证、个人资料管理 |
| 📰 信息流 | 动态发布、资源分享、热门内容推荐、个性化推荐 |
| 🎉 活动管理 | 校园活动发布、活动订阅、活动提醒 |
| 💬 社交互动 | 点赞、评论、收藏、关注、粉丝系统 |
| 📨 消息通知 | 系统通知、互动消息、私信聊天、WebSocket 实时推送 |
| 🔍 全文搜索 | 基于 Elasticsearch 的全文检索功能 |
| 📦 资源共享 | 学习资料上传、下载、分类管理 |
本项目采用 Spring Cloud 微服务架构,各服务独立部署、独立扩展,服务间通过 OpenFeign 进行通信,使用 Nacos 作为注册中心和配置中心。
┌─────────────────────────┐
│ Client Apps │
│ (Web / Mobile App) │
└───────────┬─────────────┘
│
▼
┌─────────────────────────────────┐
│ Evolved Gateway │
│ (Spring Cloud Gateway) │
│ Port: 8080 │
└─────────────────┬───────────────┘
│
┌───────────────────────────┼───────────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────────────┐ ┌───────────────────────┐ ┌───────────────────────┐
│ User Service │ │ Post Service │ │ Action Service │
│ (用户服务) │ │ (内容服务) │ │ (交互服务) │
│ • 登录注册 │ │ • 信息流 │ │ • 点赞/评论 │
│ • 用户管理 │ │ • 资源发布 │ │ • 收藏/关注 │
│ • 高校认证 │ │ • 热门推荐 │ │ • 消息队列 │
└───────────────────────┘ └───────────────────────┘ └───────────────────────┘
│ │ │
│ ▼ │
│ ┌───────────────────────┐ │
│ │ Message Service │ │
│ │ (消息服务) │ │
│ │ • 系统通知 │ │
│ │ • 私信聊天 │ │
│ │ • WebSocket │ │
│ └───────────────────────┘ │
│ │ │
└───────────────────────────┴───────────────────────────┘
│
┌───────────────────────────┼───────────────────────────┐
│ │ │
▼ ▼ ▼
┌───────────────────────┐ ┌───────────────────────┐ ┌───────────────────────┐
│ MySQL │ │ Redis │ │ Elasticsearch │
│ 数据持久化 │ │ 缓存 & 会话 │ │ 全文搜索 │
└───────────────────────┘ └───────────────────────┘ └───────────────────────┘
│
▼
┌───────────────────────────┐
│ RabbitMQ │
│ 消息队列 │
└───────────────────────────┘
| 服务模块 | 模块名称 | 端口 | 说明 |
|---|---|---|---|
evolved-gateway |
API 网关 | 8080 | 统一入口、路由转发、跨域处理 |
user-service |
用户服务 | - | 用户注册登录、高校认证、用户管理 |
post-service |
内容服务 | - | 信息流、资源发布、活动管理、搜索、热门推荐 |
action-service |
交互服务 | - | 点赞、评论、收藏、关注 |
message-service |
消息服务 | - | 通知管理、私信聊天、WebSocket 实时通讯 |
mode-service |
模式服务 | - | 业务模式管理 |
evolved-common |
公共模块 | - | 通用工具类、配置、常量、模型 |
evolved-service |
单体服务 | - | 单体版本(用于开发调试) |
仅为学习微服务架构,搜索等服务并未拆分。
| 技术 | 版本 | 说明 |
|---|---|---|
| Spring Boot | 3.2.2 | 核心框架 |
| Spring Cloud | 2023.0.0 | 微服务框架 |
| Spring Cloud Alibaba | 2023.0.0-RC1 | 阿里巴巴微服务组件 |
| Spring Cloud Gateway | - | API 网关 |
| Spring Cloud OpenFeign | - | 服务间调用 |
| Spring Cloud LoadBalancer | - | 负载均衡 |
| 技术 | 版本 | 说明 |
|---|---|---|
| MySQL | 8.0+ | 关系型数据库 |
| MyBatis-Plus | 3.5.5 | ORM 框架 |
| Redis | - | 缓存 & 会话管理 |
| Elasticsearch | - | 全文搜索引擎 |
| 技术 | 说明 |
|---|---|
| Nacos | 服务注册与发现、配置中心 |
| RabbitMQ | 消息队列 |
| Netty | WebSocket 实时通讯 |
| 技术 | 版本 | 说明 |
|---|---|---|
| Hutool | 5.8.16 | Java 工具类库 |
| Knife4j | 4.4.0 | API 文档 |
| Lombok | - | 简化代码 |
| ip2region | 2.7.0 | IP 地址解析 |
| Apache Mahout | 0.13.0 | 推荐算法 |
evolved-ms/
├── evolved-gateway/ # API 网关服务
│ └── src/main/
│ ├── java/ # 网关源码
│ └── resources/ # 配置文件
│
├── user-service/ # 用户服务
│ └── src/main/java/com/benin/evolved/user/
│ ├── controller/ # 控制器层
│ ├── service/ # 服务层
│ ├── mapper/ # 数据访问层
│ └── entity/ # 实体类
│
├── post-service/ # 内容服务
│ └── src/main/java/com/benin/evolved/post/
│ ├── controller/ # 控制器 (Flow/Event/Info/Hot/Search...)
│ ├── service/ # 服务层
│ ├── mapper/ # 数据访问层
│ └── entity/ # 实体类
│
├── action-service/ # 交互服务
│ └── src/main/java/com/benin/evolved/action/
│ ├── controller/ # 控制器层
│ ├── service/ # 服务层
│ └── entity/ # 实体类
│
├── message-service/ # 消息服务
│ └── src/main/java/com/benin/evolved/message/
│ ├── controller/ # 控制器层
│ ├── service/ # 服务层
│ ├── websocket/ # WebSocket 处理
│ └── mq/ # 消息队列
│
├── mode-service/ # 模式服务
│ └── src/main/java/com/benin/evolved/mode/
│
├── evolved-common/ # 公共模块
│ └── src/main/java/com/benin/evolved/common/
│ ├── annotation/ # 自定义注解
│ ├── aop/ # 切面
│ ├── config/ # 配置类
│ ├── constant/ # 常量
│ ├── exception/ # 异常处理
│ ├── handler/ # 处理器
│ ├── interceptor/ # 拦截器
│ ├── model/ # 通用模型
│ └── utils/ # 工具类
│
├── evolved-service/ # 单体服务(开发调试)
│
├── pom.xml # Maven 父 POM
└── README.md # 项目文档
在开始之前,请确保您的开发环境满足以下要求:
| 依赖 | 版本要求 |
|---|---|
| JDK | 17+ |
| Maven | 3.8+ |
| MySQL | 8.0+ |
| Redis | 6.0+ |
| Nacos | 2.x |
| Elasticsearch | 8.x |
| RabbitMQ | 3.x |
git clone https://github.com/your-username/evolved-ms.git
cd evolved-ms创建 MySQL 数据库并导入初始化脚本:
CREATE DATABASE evolved_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;- 启动 Nacos 服务
- 在 Nacos 中配置各服务的配置文件
根据实际环境修改各服务的 application.yml 配置文件:
spring:
cloud:
nacos:
server-addr: localhost:8848 # Nacos 地址
datasource:
url: jdbc:mysql://localhost:3306/evolved_db
username: your-username
password: your-password
redis:
host: localhost
port: 6379# 编译整个项目
mvn clean install -DskipTests
# 或者编译单个服务
cd user-service
mvn clean package -DskipTests按以下顺序启动服务:
# 1. 启动网关
java -jar evolved-gateway/target/evolved-gateway.jar
# 2. 启动用户服务
java -jar user-service/target/user-service.jar
# 3. 启动内容服务
java -jar post-service/target/post-service.jar
# 4. 启动交互服务
java -jar action-service/target/action-service.jar
# 5. 启动消息服务
java -jar message-service/target/message-service.jar
# 6. 启动模式服务
java -jar mode-service/target/mode-service.jar访问以下地址验证服务是否启动成功:
- 网关: http://localhost:8080
- Nacos 控制台: http://localhost:8848/nacos
- API 文档: http://localhost:8080/doc.html
网关提供统一的 API 入口,路由规则如下:
| 路由路径 | 目标服务 | 说明 |
|---|---|---|
/evolve/api/user/** |
user-service | 用户相关接口 |
/evolve/api/info/** |
post-service | 动态信息接口 |
/evolve/api/res/** |
post-service | 资源相关接口 |
/evolve/api/event/** |
post-service | 活动相关接口 |
/evolve/api/publish/** |
post-service | 发布相关接口 |
/evolve/api/flow/** |
post-service | 信息流接口 |
/evolve/api/search/** |
post-service | 搜索接口 |
/evolve/api/hot/** |
post-service | 热门推荐接口 |
/evolve/api/action/** |
action-service | 互动接口 |
/evolve/api/notify/** |
message-service | 消息通知接口 |
/evolve/api/mode/** |
mode-service | 模式接口 |
本项目使用 Knife4j 生成 API 文档,启动服务后访问:
http://localhost:8080/doc.html
👤 用户服务 (User Service)
| 接口 | 方法 | 说明 |
|---|---|---|
/evolve/api/user/login/sms |
POST | 短信登录 |
/evolve/api/user/login/account |
POST | 账号密码登录 |
/evolve/api/user/logout |
POST | 退出登录 |
/evolve/api/user/info |
GET | 获取用户信息 |
/evolve/api/user/edit/name |
POST | 修改用户名 |
/evolve/api/user/avatar |
POST | 上传头像 |
/evolve/api/user/follow |
GET | 获取关注列表 |
/evolve/api/user/fans |
GET | 获取粉丝列表 |
📝 内容服务 (Post Service)
| 接口 | 方法 | 说明 |
|---|---|---|
/evolve/api/publish/info |
POST | 发布动态 |
/evolve/api/publish/resource |
POST | 发布资源 |
/evolve/api/publish/event |
POST | 发布活动 |
/evolve/api/flow/list |
GET | 获取信息流 |
/evolve/api/hot/list |
GET | 获取热门内容 |
/evolve/api/search/query |
GET | 搜索内容 |
💬 交互服务 (Action Service)
| 接口 | 方法 | 说明 |
|---|---|---|
/evolve/api/action/like |
POST | 点赞 |
/evolve/api/action/unlike |
POST | 取消点赞 |
/evolve/api/action/comment |
POST | 发表评论 |
/evolve/api/action/star |
POST | 收藏 |
/evolve/api/action/unstar |
POST | 取消收藏 |
/evolve/api/action/follow |
POST | 关注 |
/evolve/api/action/unfollow |
POST | 取消关注 |
📨 消息服务 (Message Service)
| 接口 | 方法 | 说明 |
|---|---|---|
/evolve/api/notify/list |
GET | 获取通知列表 |
/evolve/api/notify/chats |
GET | 获取私信列表 |
/evolve/api/notify/messages |
GET | 获取聊天记录 |
/evolve/api/notify/subscribe |
GET | 获取订阅通知 |
本项目基于 MIT 许可证 开源。
Made with ❤️ by Benin
