高并发点赞系统 梳理

  1. 数据库表和持久化类

表:user、mood、user_mood_praise_rel
持久化类:User、Mood、UserMoodPraiseRel

  1. DAO层和Mappere映射文件

UserDao:根据id查某个用户
MoodDao:查所有说说、根据id查某条说说、传入mood更新一条说说
UserMoodPraiseRelDao:传入userMoodPraiseRel,保存一条点赞记录

  1. Service层和DTO类

MoodDTO:方便前端得到mood、user的属性
UserDTO:不变
UserService实现类:查询某个用户,转为DTO
MoodService实现类:
moodDao查询所有说说,遍历说说,根据userDao查询用户,放入DTO中;
根据id查说说、更新一条说说、点赞业务:userMoodPraiseRelDao保存一条点赞记录,id查询某条说说并更新
点赞记录存储到redis、redis+mysql展示所有说说
UserMoodPraiseRelService实现类:保存一条点赞记录

  1. Controller层和前端页面

UserController
MoodController:
查询所有说说,放入model,跳转前端页面;
点赞处理,再查询所有说说;
点赞redis处理,再查询所有说说

redis
第一、key:PRAISE_HASH_KEY,value:说说id的set集合
第二、key:moodId,value:userId的set集合

用户点赞,redis保存点赞数据,quartz定时任务处理点赞,保存到mysql。

  1. Quartz 定时任务
    从redis中取数据,通过service层的save()和update(),保存到MySQL中,清除redis数据。

  2. ActiveMQ
    异步处理,缓解redis缓存的压力
    MoodProducer:jmsTemplate,定义destination队列名称、moodDTO
    MoodConsumer:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值