day04

4-1 你们项目是如何使用XXL-JOB的

1.部署调度中心:创建定时任务或分布式任务,并设置任务的执行方式、参数、调度策略等。

2.加注解:在要执行的方法上加上@XxlJob注解,并给方法起一个名称。

3.加配置:在配置文件中添加调度中心的配置项,包括注册中心地址、执行器名称等。

4.配置执行器:在调度中心中配置一个执行器,与微服务建立连接。通常,一个执行器与一个微服务配对使用。

5.配置任务:在执行器下配置任务,即定义任务的执行时间策略。一个执行器下可以配置多个任务。

6.查看任务执行结果:配置完成后,可以执行或启动任务。随后,在调度日志中可以查看任务的执行记录、日志和报警信息,及时处理任务执行过程中的异常和错误。

4-2 说一说你的评论点赞功能是如何完成(reids版本)

评论点赞功能在我的项目中是一个独立的通用的微服务。

首先,先判断是点赞还是取消点赞。

如果是点赞,就用向redis(set类型)中保存业务id(key)和用户id(value),返回的结果是redis中数据变更的数量,如果数量为null或0,就说明给用户点过了,不能再点了,结束流程,大于0,说明没点过,点赞成功。

如果是取消点赞,直接根据业务id和用户id删除即可。返回的结果是redis中数据变更的数量,如果数量为null或0,删除失败,结束流程。大于0则删除成功。

然后,根据业务id获取redis中点赞的数量,如果这个数量是null就设置成0,然后把业务类型做key,业务id做value,数量为score向redis(zset)中保存。

最后通过XXL-JOB定时任务,向MQ投递消息(业务id,点赞数量)。哪个微服务需要用到,就用程序监听MQ,消费消息。
 

4-3 项目过程有没有难题(业绩)

起初,我们的评论点赞数据存储在MySQL中。每次前端发送点赞请求时,需要对数据库读写操作。由于点赞存在高并发的情况,且访问时间过长,性能更差,导致数据库压力过大的问题。因此,我们考虑添加Redis缓存来优化这个过程,具体操作如下:

将点赞记录和点赞统计信息保存在Redis缓存中。

将同步写改为异步写,并合并写请求。这意味着,当多个用户同时发送点赞请求时,这些请求会被合并成一个写请求,然后异步地写入MySQL数据库。

设置定期任务,定期将Redis中的点赞数量统计通过MQ更新到MySQL数据库中。

通过以上步骤,我们成功地利用Redis缓存来优化了评论点赞数据的存储和查询,从而更好地应对了高并发场景下的性能问题。

  • 11
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值