# community-qa-system **Repository Path**: ttzhanshen/community-qa-system ## Basic Information - **Project Name**: community-qa-system - **Description**: 高性能社区问答互动系统,类似知乎 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-12 - **Last Updated**: 2026-05-12 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 社区问答互动系统

Spring Boot Vue MySQL Redis RabbitMQ License

## 📖 项目简介 这是一个**高性能、高并发**的社区问答互动系统,类似知乎/Quora,实现了完整的问答、点赞/反对、收藏、评论等核心功能。 ### ✨ 核心特性 - 🎯 **状态机设计** - 赞同/反对互斥操作,支持取消 - ⚡ **Redis缓存优化** - 热点数据缓存,秒级响应 - 🚀 **异步消息队列** - RabbitMQ削峰填谷,保护数据库 - 🛡️ **内容审核机制** - DFA敏感词 + 阿里云内容安全 - 💬 **树形评论结构** - 两层展示,支持回复用户 - 🔒 **防刷限流** - 多维度限流,防止恶意操作 - 📊 **数据最终一致性** - 定时同步Redis到MySQL ## 技术栈 ### 后端 - Spring Boot 2.7+ - MySQL 8.0 - Redis 7.0 - RabbitMQ 3.11 - MyBatis-Plus 3.5 - Spring Security + JWT ### 前端 - Vue 3 - Element Plus - Axios - Pinia (状态管理) ## 核心特性 ### 1. 状态机设计 - 赞同/反对互斥操作 - 状态值:1(赞同)、-1(反对)、0(无状态) - 支持取消操作 ### 2. 高并发优化 - Redis 承载热点数据 - Set 结构存储点赞关系 - String 计数器实时统计 - 异步批量落库 ### 3. 内容审核 - DFA 敏感词过滤 - 阿里云内容安全 API - 异步审核流程 - 审核状态管理 ### 4. 树形评论 - 两层展示结构 - 支持回复用户 - 评论数实时统计 ## 项目结构 ``` community-qa/ ├── backend/ # 后端项目 │ ├── src/main/java/com/community/ │ │ ├── config/ # 配置类 │ │ ├── controller/ # 控制器 │ │ ├── service/ # 业务逻辑 │ │ ├── mapper/ # 数据访问 │ │ ├── entity/ # 实体类 │ │ ├── dto/ # 数据传输对象 │ │ ├── vo/ # 视图对象 │ │ ├── enums/ # 枚举类 │ │ ├── utils/ # 工具类 │ │ └── mq/ # 消息队列 │ └── src/main/resources/ │ ├── application.yml │ └── mapper/ # MyBatis XML ├── frontend/ # 前端项目 │ ├── src/ │ │ ├── api/ # API 接口 │ │ ├── components/ # 组件 │ │ ├── views/ # 页面 │ │ ├── store/ # 状态管理 │ │ ├── router/ # 路由 │ │ └── utils/ # 工具类 │ └── package.json └── sql/ # 数据库脚本 └── schema.sql ``` ## 🚀 快速开始 ### 环境要求 - JDK 11+ - Node.js 16+ - Maven 3.6+ - MySQL 8.0+ - Redis 7.0+ - RabbitMQ 3.11+ ### 克隆项目 ```bash git clone https://gitee.com/your-username/community-qa-system.git cd community-qa-system ``` ### 数据库初始化 ```bash # 创建数据库 mysql -u root -p CREATE DATABASE community_qa CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; # 导入表结构 mysql -u root -p community_qa < sql/schema.sql ``` ### 配置文件 ```bash # 复制配置模板 cp backend/src/main/resources/application.yml.example backend/src/main/resources/application.yml # 修改配置文件中的数据库密码、Redis密码等 vim backend/src/main/resources/application.yml ``` ### 后端启动 ```bash cd backend mvn clean install mvn spring-boot:run ``` ### 前端启动 ```bash cd frontend npm install npm run dev ``` ### 访问系统 - 前端地址:http://localhost:3000 - 后端API:http://localhost:8080/api ## 📚 文档 - [快速启动指南](快速启动指南.md) - [架构设计文档](docs/架构设计.md) - [业务流程图](docs/业务流程图.md) - [部署指南](docs/部署指南.md) - [Git提交指南](Git提交指南.md) ## 🎯 功能演示 ### 1. 问答功能 - 发布问题 - 发布回答 - 查看回答列表 ### 2. 投票功能(核心) - 赞同/反对互斥操作 - 支持取消投票 - 实时统计更新 ### 3. 评论功能 - 两层评论结构 - 回复评论 - 评论点赞 ### 4. 收藏功能 - 收藏回答 - 取消收藏 ## 🏗️ 技术架构 ``` 前端 (Vue 3 + Element Plus) ↓ Nginx (反向代理) ↓ 后端 (Spring Boot) ↓ ┌────┴────┬────────┐ ↓ ↓ ↓ MySQL Redis RabbitMQ ``` ## 💡 技术亮点 1. **状态机设计** - 优雅处理赞同/反对互斥逻辑 2. **Redis高并发优化** - Set + Hash + String组合使用 3. **异步消息队列** - 削峰填谷,保护数据库 4. **DFA算法** - 高效敏感词过滤 5. **两层评论结构** - 类似微信朋友圈的评论设计 6. **数据最终一致性** - CAP理论的实践应用 7. **防刷限流** - 多维度限流策略 8. **内容审核闭环** - 机器审核 + 人工审核 ## 📦 项目结构 ``` community-qa/ ├── backend/ # Spring Boot后端 │ ├── controller/ # API接口 │ ├── service/ # 业务逻辑(核心) │ ├── mapper/ # 数据访问 │ ├── entity/ # 实体类 │ ├── mq/ # 消息队列 │ └── utils/ # DFA敏感词过滤 ├── frontend/ # Vue 3前端 │ ├── components/ # 核心组件 │ ├── views/ # 页面 │ └── api/ # API封装 ├── sql/ # 数据库脚本 ├── docs/ # 完整文档 └── README.md ``` ## 🔧 核心模块 ### 投票状态机 ``` 状态转换规则: - 0 + 赞同 → 1 (赞同+1) - 1 + 赞同 → 0 (取消,赞同-1) - 1 + 反对 → -1 (赞同-1,反对+1) - -1 + 反对 → 0 (取消,反对-1) - -1 + 赞同 → 1 (反对-1,赞同+1) ``` ### Redis数据结构 ``` 1. 投票状态: answer:vote:{answerId}:{userId} 2. 赞同集合: answer:upvote:{answerId} 3. 统计数据: answer:stats:{answerId} 4. 限流计数: user:vote:limit:{userId}:{date} ``` ### 内容审核流程 ``` 用户发布 → MySQL(待审核) → RabbitMQ → DFA敏感词 → 阿里云API → 更新状态 → 展示 ``` ## 🤝 贡献指南 欢迎提交 Issue 和 Pull Request! ### 提交规范 - `feat`: 新功能 - `fix`: 修复bug - `docs`: 文档更新 - `style`: 代码格式调整 - `refactor`: 代码重构 - `perf`: 性能优化 - `test`: 测试相关 - `chore`: 构建/工具相关 ## 📄 许可证 [MIT License](LICENSE) ## 👨‍💻 作者 - GitHub: [your-github](https://github.com/your-username) - Gitee: [your-gitee](https://gitee.com/your-username) - Email: your-email@example.com ## 🙏 致谢 感谢以下开源项目: - [Spring Boot](https://spring.io/projects/spring-boot) - [Vue.js](https://vuejs.org/) - [Element Plus](https://element-plus.org/) - [MyBatis-Plus](https://baomidou.com/) - [Redis](https://redis.io/) - [RabbitMQ](https://www.rabbitmq.com/) --- ⭐ 如果这个项目对你有帮助,请给个 Star 支持一下!