【量子社区】
一、项目介绍
设计并开发一个功能丰富的社区型网站。该网站集成文章模块、问答模块、评论模块、动态模块、消息模块、私信模块、后台管理模块、全局搜索等功能。
二、技术栈
1. 后端框架:Spring Boot 、MyBatis、Jwt、Kaptcha、lombok、Page Helper、aliyun OSS、WebSocket
中间件:RabbitMQ
缓存: Redis
前端框架:HTML、CSS、JavaScript、Vue3、ElementPlus、md-editor-v3、Echarts
数据库:MySQL
构建工具:Maven
三、项目描述
1. 使用Cookie存储用户登录信息的Jwt token,并通过随机盐值+多次哈希对密码进行加密存储,增强密码安全性。
2. 使用MyBatis作为持久层框架,并通过Page Helper插件对文章、评论、用户、问答、动态等数据进行分页查询,提高数据查
询效率。
3. 采用阿里云OSS存储文章和问答md文件、文章图片、用户头像等信息。
4. 使用Kaptcha生成图形数字验证码,并使用Redis存储当前用户登录失败次数,防止密码被暴力破解。
5. 采用Redis存储图形数字验证码、邮箱验证码以及最新的和访问量最高的十篇文章、回答,提高超多用户请求页面时页面的加载速度。
6. 使用WebSocket实现了用户间私信、系统消息以及发布评论后前端页面即时更新评论等即时通信功能
7. 前端使用使用md-editor-v3实现在线编辑并发布markdown文章,使用Echarts实现了文章、问答、用户、动态等模块的数据
可视化功能。
8. 使用 RabbitMQ 和线程池实现了添加评论、添加文章、添加问答功能的高并发写入,并将评论、文章、问答等数据写入
到 Redis 作为临时缓存实现评论的高并发读取,通过定时任务将评论数据同步到数据库,减少访问数据库的压力。
9. 使用Redis缓存文章、问答和动态的浏览量、点赞量、评论量等需要频繁读取和更新的数据,并通过定时任务将缓存数据同步到数据库中,减少直接访问数据库造成的压力。