Skip to content

Sealt/Evolved-MS

Repository files navigation

Evolved Logo

Evolved-MS

高校学习生活社区平台 / 微服务后端
Campus Learning & Life Community Platform · Microservices Backend

Spring Boot Version Spring Cloud Version Spring Cloud Alibaba Version JDK Version License

一个面向高校学生的学习生活社区平台后端系统,采用微服务架构设计,提供信息流、资源分享、活动管理、社交互动、即时通讯等核心功能。


📖 目录


✨ 项目简介

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

1️⃣ 克隆项目

git clone https://github.com/your-username/evolved-ms.git
cd evolved-ms

2️⃣ 配置数据库

创建 MySQL 数据库并导入初始化脚本:

CREATE DATABASE evolved_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3️⃣ 配置 Nacos

  1. 启动 Nacos 服务
  2. 在 Nacos 中配置各服务的配置文件

4️⃣ 修改配置

根据实际环境修改各服务的 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

5️⃣ 构建项目

# 编译整个项目
mvn clean install -DskipTests

# 或者编译单个服务
cd user-service
mvn clean package -DskipTests

6️⃣ 启动服务

按以下顺序启动服务:

# 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

7️⃣ 验证服务

访问以下地址验证服务是否启动成功:


⚙️ 配置说明

网关路由配置

网关提供统一的 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 模式接口

📚 API 文档

本项目使用 Knife4j 生成 API 文档,启动服务后访问:

http://localhost:8080/doc.html

主要 API 接口

👤 用户服务 (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

About

Evolved-MS: Backend Microservices Edition for Evolved

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages