Skip to content

6666ccc/MyCommunityHub

Repository files navigation

MyCommunityHub

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 推送) - 默认端口:8096
  • File-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 导入

仓库根目录下的 SQL/ 文件夹包含各模块的建表脚本:

  • auth_db.sql
  • user_db.sql
  • post_db.sql
  • comment_db.sql
  • notification_db.sql
  • common_db.sql

启动顺序(建议)

  1. 启动 Nacos(配置中心 & 注册中心)。
  2. 启动 RabbitMQ。
  3. 准备并导入数据库结构。
  4. 启动 Gateway。
  5. 依次启动业务服务:
    • 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 正常运行。

About

springcloud练习项目耗时:2025年9月-2025年12月

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages