暫無描述

ggbocoder ac12fd75be feature:add follower and follewee 2 年之前
db 4837174643 feat: add email activate registration 2 年之前
src ac12fd75be feature:add follower and follewee 2 年之前
.gitignore 9ec2273173 init project 2 年之前
LICENSE 2f0e65d10d Initial commit 2 年之前
README.md ac12fd75be feature:add follower and follewee 2 年之前
mvnw 9ec2273173 init project 2 年之前
mvnw.cmd 9ec2273173 init project 2 年之前
pom.xml ceb30eb5f4 feature: add Redis config 2 年之前

README.md

FdroidRepository

主要功能

  • 基于邮件激活的注册方式
  • 基于MD5加密与加盐的密码存储方式
  • 登录功能包括随机验证码的验证
  • 登录状态检查,为游客和已登录用户展示不同界面与功能
  • 不同用户的权限控制和网站数据统计(UV、DAU)
  • 管理员可以查看网站数据统计和网站监控信息
  • 用户上传头像
  • 发布帖子、评论帖子、热帖排行、发送私信与敏感词过滤等功能
  • 点赞、关注与系统通知功能
  • 全局搜索帖子信息的功能

核心功能实现

  • 使用无状态的jwt进行鉴权
  • 使用Spring Security实现权限控制,解决HTTP无状态的缺陷
  • 使用ThreadLocal存储用户数据,代替Session,便于分布式部署
  • 使用Redis集合数据类型解决踩赞、相互关注功能,保证数据正确性。使用Redis的ZSet保存关注列表
  • Redis的HyperLogLog存储每日UV、Bitmap存储DAU,实现网站数据统计
  • 使用Kafka作为消息队列,实现系统通知和解耦
  • 使用Elasticsearch + IK分词插件实现全局搜索功能
  • 使用分布式定时任务Quartz定时计算帖子分数,实现热帖排行
  • Caffeine本地缓存 + Redis分布式缓存的多级缓存,提高服务器性能

TODO

  • 使用布隆过滤器屏蔽拉黑的ip下载应用
  • 使用Redis实现一致性哈希算法,使用Redis的ZSet实现用户综合评分
  • 使用kafka收集用户下载app量,使用kafka解耦构建流水线,当流水线构建完毕时通过kafka将消息通知到邮箱
  • 使用kafka+themeleaf实现订阅app更新功能
  • 加快下载速度,断点

评论点赞设计

  • 用Redis的set结构存储点赞情况,key:postId,value:set