皮皮龙技术分享网站

我要开发同款
皮皮龙03242023年11月03日
99阅读
所属分类博客

作品详情

项目描述 : 基于SpringBoot+SpringSecurity+MySQL+Mybatis+Redis+Elasticsearch+RabbitMQ实现的论坛系统,项目包含技术文章
阅览、发布或评论讨论、用户接收消息系统、用户私信实时聊天、热榜排行、全文搜索、用户数据统计等功能模块
项目难点(个人职责) :
1. 基于 SpringSecurity 和腾讯云短信 API 实现手机号登录验证功能,并利用 Redis 缓存验证码
2. 用 WebSocket 实现实时通信功能,并使用 RabbitMQ 异步将聊天记录存储到数据库中,在测试环境中,QPS 达到 1900 左右,
削峰率达到 90% 以上,保证了系统的可用性和稳定性。
3. 使用推拉模型设计消息中心,使用RabbitMQ异步发送消息,缓解系统压力,并将消息双写Redis上,缓解数据库访问压力
4. Redis缓存登录成功的用户信息,防止频繁的数据库访问,并用延迟双删 + 消息队列的方式解决缓存一致性问题,QPS从600提
升至3000
5. 通过Token + Redis机制对发布讨论、提交评论等接口进行幂等化处理,并用lua脚本解决并发访问问题
6. 使用前缀树的数据结构对敏感词进行过滤,使用ThreadLocal解决线程安全问题
7. 基于 OAuth2 和 JWT 实现用户GitHub三方登录功能
项目优化 :
1. 利用Redis的ZSet数据结构对热度进行排序,并采用二级缓存架构引入Caffeine加速读取。对Caffeine中的数据设置过期时间,解
决二级缓存数据一致性,将原来的QPS从450提升至2000。
2. 引入 Bloom Filter 优化搜索效率,将搜索接口 QPS 从 20 提高至 60
3. 在Elasticsearch数据库中只存储搜索的数据,适当提高Filesystem Cache的大小并把热点数据预存储到Filesystem Cache中,提高
了系统搜索性能
业绩:
部署在腾讯云服务器上,目前提供给淮北师范大学计算机科学与技术专业同学使用,日活跃用户40人左右,每日页面点击量400
左右
声明:本文仅代表作者观点,不代表本站立场。如果侵犯到您的合法权益,请联系我们删除侵权资源!如果遇到资源链接失效,请您通过评论或工单的方式通知管理员。未经允许,不得转载,本站所有资源文章禁止商业使用运营!
下载安装【程序员客栈】APP
实时对接需求、及时收发消息、丰富的开放项目需求、随时随地查看项目状态

评论