MyCommunityHub 是一个基于 Spring Cloud 微服务架构的社区交流平台,集成了发帖、评论、点赞、收藏、关注以及实时通知等功能。项目采用前后端分离设计,后端通过微服务模块化解耦业务,使用 RabbitMQ 实现异步消息,使用 WebSocket 实现实时消息推送。前端代码请参考:https://github.com/6666ccc/MyCommunityHub_Vue3
- API 网关(Gateway)作为统一入口,负责路由、鉴权(JWT)、限流等。
- 各个业务以微服务形式独立部署:认证、用户、帖子、评论、通知、文件等。
- 公共模块
common-library存放基础工具类、返回结构、事件类与 DTO。 - 使用 Nacos 作为服务注册与配置中心,RabbitMQ 做为消息中间件,MySQL 做为持久化存储。
- WebSocket 用于通知的实时推送。
项目为多模块 Maven 项目(各模块文件夹即为模块):
Gateway- API 网关(全局拦截、JWT 校验) - 默认端口:8080(可在配置中修改)Auth-service- 认证服务(注册 / 登录)User-Service- 用户服务(用户信息、档案)Post-Service- 帖子服务(发帖 / 编辑 / 标签 / 列表)Comment-Service- 评论服务(多级评论、回复)Notification-Service- 通知服务(通知记录、WebSocket 推送) - 默认端口:8096File-Service- 文件服务(文件上传与静态访问)common-library- 公共依赖(工具类、事件定义、通用返回)
备注:默认端口仅为说明,实际端口请查看各模块的 application.yml 或 Nacos 配置。
- Java 17
- Spring Boot 3.x
- Spring Cloud(用于服务发现、配置、调用)
- Nacos(注册中心与配置中心)
- RabbitMQ(异步消息)
- MySQL(关系数据库)
- MyBatis / MyBatis-Plus
- Spring WebSocket(实时推送)
- JWT(鉴权)
- JDK 17+
- Maven 3.8+
- MySQL 8+
- RabbitMQ
- Nacos Server
可选(视项目配置):Seata(如果使用分布式事务)等。
项目使用 Nacos 作为配置中心(也可直接修改模块下的 application.yml 进行本地调试)。请确保以下配置可用:
- MySQL 数据库连接(地址、端口、用户名、密码)
- RabbitMQ 地址与认证
- Nacos Server 地址
- 各服务的 application.yml 中的端口配置(如需要)
仓库根目录下的 SQL/ 文件夹包含各模块的建表脚本:
auth_db.sqluser_db.sqlpost_db.sqlcomment_db.sqlnotification_db.sqlcommon_db.sql
- 启动 Nacos(配置中心 & 注册中心)。
- 启动 RabbitMQ。
- 准备并导入数据库结构。
- 启动 Gateway。
- 依次启动业务服务:
- Auth-service
- User-Service
- Post-Service
- Comment-Service
- Notification-Service
- File-Service
模块间存在依赖(如鉴权、消息发布/消费),按此顺序有助于避免启动时找不到注册服务或消息队列错误。
- 日志查看:检查各模块的控制台日志,若使用 Nacos,请确认配置是否已正确下发。
- WebSocket 调试:Notification-Service 提供 WebSocket 接口,前端可连接以接收实时通知。
- 异常排查:当某个服务无法注册到 Nacos,请检查
spring.cloud.nacos.discovery.server-addr配置并确认 Nacos 正常运行。