项目描述:基于Spring Boot的论坛,为游客和用户提供了人不同的页面和功能,实现了登录、注册、邮件激活、修改密码、点赞、关注、发送私信、敏感词过滤、添加评论、统一记录日志、用户权限控制、热帖排行、全文搜索、消息通知、用户数据统计等功能
技术栈:Spring Boot + MyBatis +MySQL + Redis + Spring Security + kafka
项目亮点:
- 使用前缀树数据结构来实现过滤敏感词的功能
- 给用户密码组合salt字段通过MD5算法加密生成密码,防止用户密码被破解
- 使用Redis的set实现点赞,zset有序集合来实现热帖排行
- 利用Redis代替传统session域存储用户凭证,防止在分布式业务中出现问题
- 利用Redis的HyperLogLog来模糊记录UV(独立访客)数量,Bitmap 来精确记录DAU(日活跃用户)数量
- 利用Elasticsearch实现全文搜索并高亮显示关键字
- 利用Spring Security 来实现权限控制,不同的用户权限不同
- 使用Caffeine 和Redis 构建二级缓存优化热门帖子访问,进一步防止缓存雪崩,提高QPS
- 利用kafka实现异步的站内通知,面对大量通知时不阻塞主线程对系统进行解耦,削峰