皮皮龙技术分享网站

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

作品详情

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

评论